分支
一、分支理解
HEAD,保持着当前的分支指针
1、逻辑关系
快照对象blob,每一次提交,都会对变化的文件或目录形成完全快照
逻辑树,树中记录了所有快照的索引或指针
提交对象,包含了对逻辑树的指针
分支,指向提交对象,可以理解为可变指针
HEAD,保持着当前的分支指针
----合并类型
--fast
--末端加公共祖先
2、建立分支
git branch br1--在当前的提交对象上建立一个分支
3、切换分支
git checkout br1--切换到br1分支,HEAD指针指向br1
4、创建并切换分支
git checkout -b br1=
=git branch br1;git checkout br1
5、分支合并
git branch br1
git checkout br1
---vim xxxx.heml
---git add xxxx.html
git commit -m 'dd'
git checkout master
git merge br1-------把br1的当前提交合并到master分支
6、删除分支
git branch -d br1
7、查看分支
git branch --查看分支
git branch -v --查看分支并查看最后一次提交
!!!!git branch --merge --查看与当前分支已经合并的分支
!!!!git branch --no-merge --查看与当前分支未合并的分支
目前冲突出现的一种可能是解决紧急BUG,而没有正确同步dev分支。
导致dev分支落后于master分支。按道理来说,dev版本始终要新于master分支版本。
即时有冲突也应该在dev分支内解决完毕了。
解决紧急BUG步骤参考应该是:
1、切换到master分支,git pull 保证本地master为最新
2、git checkout -b hotfix 创建一个新的临时的解决bug的分支
3、在hotfix分支上修改bug,修改完毕后commit
---vim xxxx.heml---修改文件
git add xxxx.html
git commit -m 'bug repair'
4、切换回master分支,合并hotfix后,push到远程master分支,上线master代码
git checkout master
git merge hotfix-------把hotfix的当前修改提交合并到master分支
git push
5、最后一步至关重要,把hotfix合并到dev研发分支,否则必有冲突
git checkout gsb-netsharp-dev
git merge hotfix
6、删除临时的hotfix
git branch -d hotfix