8 分支管理
这里主要体现的git的功能的分离,这才是真正的git吧。每一个分支都是一个单独的可以分离的工作单位。每个用户可以建立不同的分支进行工作,最终提交到同一个开发分支上。一个用户可以建立不同的分支实现不同的功能,最终提交到同一个用户分支上。分支的灵活性,可以让我们很容易的实现不同分工的分割。
创建分支
git checkout -b dev
创建分支,并且将工作目录切换到dev的工作目录上。
git branch dev
使用当前版本分支创建新的分支(即添加一个分支指针)。
git checkout dev
将工作区切换到某一个分支指针所指的版本上。
git branch
会列出所有的分支目录。
分支合并
git merge dev
将dev分支合并到当前工作目录下的分支上(不一定是产生他的父分支)
git branch -d dev
用来删除一个已经无效的分支指正,但是在这个分支指针上左右的操作都会保留。
解决冲突
-
当合并过程中出现冲突,会进入长途解决工作区,手动解决后提交,就会退出。
-
关于一点,提交后的分支有必要继续工作吗,都行。完全可以提交后删掉重新创建一个分支,获取主干分支上集成的最新内容,然后继续工作。也可以直接在分支上合并一次主干分支,然后得到最新的内容,继续在原来的分支上进行工作。
git log --graph
可以查看分支合并图。
分支合并方式
git merge --no-ff -m "merge messge" dev --no-ff
不适用fastfoward方式进行合并,会产生一个新的版本节点。加上-m参数,是因为这种方式合并过程中会自己提交合并后的版本。
分支管理
- 团队合作的分支管理组图就是你们要的方式
BUG分支
- 因为总会在自己工作的过程中出现紧急的需要更改的bug,但是现在工作区中的内容还不能提交,所以必须生成现在工作区的一个快照,等处理完紧急的bug之后,再来回复工作区的内容。
git stash
将当前的工作现场储存起来,等到修复完成bug之后可以再次进行更改。工作现场包括工作区和stage缓存区。然后可以清空工作区和缓存区的内容,新建bug分支进行工作。
git stash list
用来查看保存中的工作区。
git stash apply stash@{0}
恢复stash内容,但并不清楚stash列表中的内容。
get stash drop
用来删除stash列表中的内容。(因为已经恢复或者没有必要恢复)
git stash pop
可以用来弹出stash列表中的内容。
Feature分支
-
当添加一个新的功能的时候,因为是一些实验性的代码,所以要创建一个单独的分支进行处理。
-
git checkout -b feature-vulcan
创建一个新的功能分支
git status
git add vulcan.py
git commit -m "add feature vulcan"
git checkout dev
git merge vulcan.py
git branch -D feature-vulcan 不合并,强制删除