首先进入git目录,建议通过windows powershell操作
git branch new branch 创建一个新分支
git checkout branch 跳转到指定分支
git checkout -b branchname 创建并跳转至新创建的分支,此处需注意不是git branch -b 而是checkout
如果我们在当前branch中,新建文件,添加文件并commit
当前分支下能够看到我们在这条分支上的最新commit
也能看到最新添加的文件
接下来,我们转换到master branch看看我们是否还能看到 new-branch-b 分支上的这些改变
从上图可知,当我们转换到master分支时,git log 并不会显示分支上的内容,也不能够检测我们在分支中添加的文件。同样,也不能通过git status 检测到其他branch中新添加或修改的文件。
git branch -d 分支名 可删除某条分支,而如果我们要删除的分支还没有与master整合,git会报错给予提示
当我们想要整合两条分支时,可以用 git merge 分支名 来实现,下图中可看到,master分支与new-branch-b分支整合后,两条分支都将指向最新的commit。但这样的整合方法只适用于master分支与其他分支无冲突的情况,如果两个分支在分叉后都各自有commit,则需要通过另外的方式整合两条分支。
我们现在尝试分别在两条分支上对同一文件的同一位置进行修改并分别commit,造成冲突。看看我们要如何合并他们。
我们从git status中得知,有冲突文件时,打开该文件即可看到git给我们的提示,两条分支对同一个部分进行了修改,他不知道选哪一个,此时,我们可以在其基础上删改并保存,解决冲突即可。修改完文件之后,我们要add并commit这个冲突文件,则可完成两条分支的合并(merge)
git merge --abort 可以撤销这次冲突的合并
git log --graph --oneline 可以清晰地看到分支状态及其合并过程