1、常用的分支操作
1、查看分支:`git branch [-r/-a]` 为空查看本地分支,-r查看远程分支,-a查看全部分支
2、创建分支:`git branch <name>`或者`git branch <name> origin/分支名`
3、切换分支:`git checkout <name>或者git switch <name>`
4、创建+切换分支:`git checkout -b <name>或者git switch -c <name>`
从远程创建并合并:`git checkout -b <name> origin/分支名 或者 git switch -c <name> origin/分支名`
5、合并某分支到当前分支:`git merge <name>`
6、删除分支:`git branch -d <name>`
如果要删除一个没有被合并过的分支,可以通过`git branch -D <name>`强行删除。
7、保存分支现场:`git stash`
8、恢复分支现场:`git stash pop 或 git stash apply 和git stash drop`
9、查看保存的分支现场:`git stash list`
2、合并分支
当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。
解决冲突就是把Git合并失败的文件手动编辑为我们希望的内容,再提交。
Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容
用git log --graph命令可以看到分支合并图。
合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,
而fast forward合并就看不出来曾经做过合并。
普通合并的命令:`git merge --no-ff -m "备注信息" <name>`
在master分支上修复的bug,想要合并到当前dev分支,可以用`git cherry-pick <commit版本号>`命令,
把bug提交的修改“复制”到当前分支,避免重复劳动。
3、多人协作
1、首先,可以试图用git push origin <branch-name>推送自己的修改;
2、如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
3、如果合并有冲突,则解决冲突,并在本地提交;
4、没有冲突或者解决掉冲突后,再用git push origin <branch-name>推送就能成功!
5、如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,
用命令git branch --set-upstream-to <branch-name> origin/<branch-name>。