iamjiyu 2020-07-21
进入要管理的文件夹
执行初始化命令
git init
管理目录下的文件状态
git status # 新增的文件和修改过后的文件都是红色的
管理制定文件(红变绿)
git add 文件名 git add . # . 表示管理所有文件
个人信息配置:用户名和邮箱【第一次使用需要】
# 全局配置 git config --global user.mail "" git config --global user.name "yourname" # 局部配置:当前项目 git config user.mail "" git config user.name "yourname"
生成版本
git commit -m ‘描述信息‘
产看版本记录
git log
-空文件夹不被管理 -指定某些文件或者文件夹不被git管理 -在项目根路径,跟.git文件夹一个路径,新建.gitignore.,在里面配置 - 语法: # 号是注释,没有用 文件夹名字,表示文件夹忽略,不被管理 /dist 表示根路径下的dist文件夹,不被管理 *.py 表示后缀名为py的文件,都被忽略 *.log*
工作区:编写代码的地方 - 已经管理的文件(空白) - 新文件/修改为文件(红色) 暂存区:暂时管理起来的将要推送到版本库 # 通过add将工作区红色的文件推送到暂存区 版本库:存放版本的地方 # 通过commit命令将版本推动到版本库
# 回滚到之前的版本 git log git reset --hard 版本号(形式1) # 回滚到之后的版本 git reflog git reset --hard 版本号(形式2)
git branch
git branch 分支名称
git checkout 分支名称
git merge 要合并的分支 # 注意:切换分支再合并;站在当前分支上,把其他分支合并过来
git branch -d 分支名称
实战中至少保留两个版本,一个是上线环境下的稳定版,一个是开发环境下的开发版。
使用github:官网注册账号
新建远程仓库
1. 给远程仓库起别名 origin git remote add origin 远程仓库地址 2. 向远程仓库推送代码 git push -u origin 分支
1. 克隆远程仓库代码 git clone 远程仓库地址(内部已实现git remote add origin 远程仓库地址) 2. 切换分支 (clone会拷贝所有的分支) git checkout 分支
1. 切换到dev分支进行开发 git checkout dev 2. 把master分支合并到dev [仅一次] git merge master 3. 修改代码 4. 提交代码 git add . git commit -m ‘...‘ git push origin dev
1. 切换到dev分支进行开发 git checkout dev 2. 拉代码 git pull origin dev 3. 继续开发 4. 提交代码 git add . git commit -m ‘,,,‘ git push origin dev
1. 切换到dev分支进行开发 git checkout dev 2. 拉代码 git pull origin dev 3. 修改代码 4. 提交代码 git add . git commit -m ‘..‘ git push origin dev
1. 将dev分支合并到master,进行上线 git checkout master git merge dev git push origin master 2. 把dev分支也推送到远程 git checkout dev git merge master git push origin dev
如果在A电脑上开发的新功能忘记推送到github云端,此时在B电脑上是不发pull到新功能的代码。
这种情况下不可能在B电脑上重新开写已经开发完成的那部分代码,可以接着编写一些其他的代码后推送到github
然后回到A电脑上,pull新的代码。合并时可能出现冲突,此时手动处理冲突即可。
rebase(变基)使git的提交记录变的简洁
将多条提交记录整合成一条记录。合并记录时建议不要合并那些已push到远程仓库的记录。避免造成版本不一致的混乱。
将分支上的版本插到master主线上,形成一条线的结构,而不是merge形成的分支的结构
代码忘记推云段端时的
git rebase 冲突
解决冲突
git rebase -- continue