1、分支管理:
1) 创建、切换、合并、删除分支
① 查看所有分支,当前分支前会标一个*号:git branch
② 创建分支:git branch <name>
③ 切换分支:git checkout <name>
④ 创建+切换分支:git checkout -b <name>
⑤ 合并某分支到当前分支:git merge <name>
⑥ 删除分支:git branch -d <name>
eg:
① 创建dev分支,然后切换到dev分支:
git checkout -b dev
相当于以下两条命令:
git branch dev
git checkout dev
② 列出所有分支,当前分支前会标一个*号:
git branch
③ 切换回master分支:
git checkout master
④ 把dev分支合并到master分支上:
git merge dev
⑤ 删除dev分支
git branch -d dev
2、冲突处理
在两个不同的分支上对同一个文件做了修改,Git无法自动合并分支,只能试图把各自的修改合并起来,但这种合并就可能会有冲突。git merge和git status都会报告冲突的文件。
必须首先手动解决冲突。解决冲突后,再提交(add和commit),合并、删除分支。
Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容。
查看分支合并图:
git log --graph
3、分支管理的基本原则:
master分支非常稳定,仅用来发布新版本,不能在上面直接开发。
4、bug分支
每个bug都可以通过一个新的临时分支来修复,修复后,合并分支,然后将临时分支删除。
查看工作现场:
git stash list
1) 当手头工作没有完成时,不能提交,但bug需要马上完成修复,可以先把当前工作现场储存起来:
git stash
2) 修复bug。
3) 修复后再恢复现场后继续工作:
① 用git stash apply恢复,但恢复后stash内容并不删除,需要用git stash drop来删除;
② 用git stash pop恢复,恢复的同时把stash内容删除。
5、多人协作
当从远程仓库克隆时,实际上Git自动把本地的master分支和远程的master分支对应起来,且远程仓库的默认名称是origin。
查看远程库的信息:
git remote
显示更详细的信息:
git remote -v
1) 推送分支
把该分支上的所有本地提交推送到远程库。推送时,要指定本地分支。
git push origin master
git push origin dev
判断分支是否需要推送:
① master分支是主分支,因此需要与远程同步;
② dev分支是开发分支,团队所有成员都需要在上面开发,因此也需要与远程同步;
③ bug分支只用于在本地修复bug,因此没必要推送到远程,除非上级要看修复了几个bug。
2) 抓取分支
git pull
如果有冲突,要先处理冲突。
3) 多人协作的工作模式:
① 试图用git push origin branch-name推送;
② 如果推送失败,是因为远程分支比本地更新,需要先用git pull试图合并;
③ 如果合并有冲突,则解决冲突,并在本地提交;
④ 没有冲突或解决冲突后,再用git push origin branch-name推送。