查看所有分支:
git branch
Git将列出所有分支,如果是当前使用的分支,前面会加一个星号表示
创建一个新的分支:
git branch 分支名称
创建一个分支并且指向该分支:
git checkout -b 新的分支名称
切换分支:
git checkout 已有的分支名称
删除分支:
注意,删除分支需要先离开这个分支才能执行删除
git branch -d 分支名称
切换到仆人分支,再删除女仆分支
在仆人分支下查看text.txt文件是可以的,即每一个分支都有同一个的工作区:
在这个分支进行提交:
这是在文件没有改变的情况下提交,似乎两个分支都共同具备这个版本
但是更改文件之后的提交:
vim text.txt insert new content :wq git add . git commit -m '仆人分支的第二次提交'
分支会显示标注出来属于哪一分支下的版本:
如果切换回Master主分支之后查看文件,会发现,主分支下的文件还是之前的样子
现在Master主分支和Servant仆人分支是不一样的情况
我们可以将其他分支合并到主分支中
合并使用MERGE命令 将指定分支的版本合并到Master
git merge 分支名称
我们可以回忆下,在Servant分支上提交的时候,HEAD会指向最新提交的版本,因此,合并HEAD指向的版本保持不变
最新版本的工作区文件记录也会更新过来:
分支版本冲突:
现在在Master主分支上提交一次版本:
回到Servant分支:
在text.txt文件上添加修改并且提交
再回到Master主分支上查看文件:
现在合并Servant的版本:
就发现Git反馈错误了,自动合并失败,修复那些提交的结果
查看文件:
仓库状态还是一个未跟踪的一个状态
我们可以把它提交,解决合并冲突:
可以看到Master的分支正常了
冲突问题?
先合并
再手动解决
再添加
再提交
真实开发环境的分支操作:
BUG分支:
如果需要从正在开发的分支中切换到Master分支,没有提交的文件都将会被所有分支访问到
为了解决这个问题Git提供了stash命令,可以把暂存区中没有提交的文件锁定
这个文件将不会再访问到
等BUG修复,再回来恢复锁定的文件:
git stash list 查看锁定文件
git stash pop 弹出锁定