在一个Git仓库内、我们可以创建多个和工作于多个分支,各个分支之间是隔离的。也就是在某个分支上的任何修改、暂存、提交都不会影响到其他分支 。下面是分支的相关操作
默认项目都会在master分支上进行。
通过git branch
来查看分支
创建并切换到新分支:git checkout -b newBranch
在新分支对file进行一些修改之后进行暂存、提交。
然后切换回主分支master会看到master分支上的代码并没有被修改。然后我们要把newBranch分支的修改合并到master上:
git merge newBranch
此时再看master分支上的代码就和newBranch一样了
删除分支:
git branch -d newBranch
如果再修改newBranch之后又在master上进行了一些修改,此时合并时会提示冲突。然后可以手动在文件中按照提示自行修改
还有另外一种合并方法。和merge差不多,但是没有merge好用。如下:
git rebase newBranch
这时候如果有冲突的话,在手动修改了冲突文件之后执行git branch
查看时,会发现不在任何分支上。此时我们需要提交修改冲突之后的文件,然后再执行git rebase --continue
来继续完成分支合并
- 撤销git-rebase
还是通过git reflog
来实现
执行git reflog
可以看到所有的git操作记录。
我们可以通过git reset --hard head@{3}
回到某次提交--hard
参数意味着不仅修改仓库当前修订位置,也会同时修订文件来覆盖工作区和暂存区