仓库刚创建的时候是只有一个master主分支的,在实际应用中,多人开发时,为了避免代码未完成,提交时对当前版本造成影响,我们可以根据当前版本创建一个分支来完成自己的模块和功能,并在完成之后合并到主分支即可,由于我是在windows系统下进行操作的,所以以下操作均已windows为基准
文中出现的dev为本次记录使用的分支名称
$ git branch dev
$ git checkout dev
git checkout -b devgit branch命令可以查看所有分支信息,其中有*标注的为当前分支
git merge dev可以将dev的分支合并到当前分支,如果合并出现冲突时,需要解决冲突,然后再git commit才行
默认情况下,合并的时候是处于快进模式
fast-forward(直接将当前分支指向被合并的分支),这个模式下删除被合并的分支时,会丢失分支信息,因为合并的时候没有创建commit解决方案:
git merge --no-ff -m'xxxxx' dev
- 意为本次提交禁用fast-forward模式,且合并时会生成一个
commit,所以需要加上-m'xxxxxx'使用
git log --graph --pretty=oneline --abbrev-commit可以查看当前分支的合并情况,快进模式下合并不会存在记录
git branch -d dev可以删除掉dev这个分支
当分支没有合并过,且有新增的文件在版本库时,执行
git branch -d dev是无法删除分支, 当然也可以强制删除,将-d改为-D
当文件修改未完成,又需要紧急修改另一个文件时,提交当前未完成的代码肯定会有影响,这个时候可以先储藏当前工作区
git stash可以储藏当前工作区,需要注意的是:
git status还是会提示将那些文件add到暂存区如果没有上述的情况,那就可以执行git stash,然后创建分支修改另一个文件:
修复完成后,提交并合并到最新分支,然后回到储藏的那个分支,还原工作区
git stash apply
通过上面的命令可以恢复内容,但是在
stash里面的内容不会删除,需要git stash drop来删除解决方案:
git stash pop可以在恢复的同时删除掉储藏的内容
git stash list可以查看储藏区的内容
git stash apply stash@{0}git stash drop stash@{0} git stash clear