1 创建与合并分支
情景:在进行多个并行作业时,我们会用到分支。每个分支都有自己的最新代码。master分支是Git默认创建的分支。
git branch //查看分支
git checkout -b branch_A //创建并切换到分支
git checkout branch_A //切换到分支
git merge branch_A //合并branch_A分支到当前分支
git branch -d branch_A //删除分支
因为创建、合并和删除分支非常快,所以Git鼓励你使用分支完成某个任务,合并后再删掉分支,这和直接在master分支上工作效果是一样的,但过程更安全。
2 协作开发
当你从远程仓库克隆时,实际上Git自动把本地的master分支和远程的master分支对应起来了,并且,远程仓库的默认名称是origin。
推送分支
就是把该分支上的所有本地提交推送到远程库。推送时,要制定本地分支。这样Git就会把该分支推送到远程库对应的远程分支上。
git push origin master
但是,并不是一定要把本地分支往远程推送,那么,哪些分支需要推送,哪些不需要呢?
- master分支是主分支,因此要时刻与远程同步;
- dev分支是开发分支,团队所有成员都需要在上面工作,所以也需要与远程同步;
- bug分支只用于在本地修复bug,就没必要推到远程了;
抓取分支
多人协作时,大家都在master和dev分支上推送修改。现在加入一个新的开发者(注意要把SSH Key添加到GitHub)
首先clone代码到本地 https://www.cnblogs.com/suiyilaile/p/10982597.html
默认情况下只能看到master分支。所以需要在本地创建和远程分支对应的分支。本地分支和远程分支的名称最好一致。
git checkout -b branch_name origin/branch_name
当新的开发者(其他开发者)做了修改,提交时若推送失败,先pull拉取最新代码,解决冲突在提交。
pull代码时,可能失败。原因时没有指定建立本地分支和远程分支的关联
git branch --set-upstream branch_name origin/branch_name
再pull。然后解决冲突,再push。
这就是多人协作的工作模式。
合并分支
git checkout master git merge branch_name