07 创建分支、切换分支、合并分支
git checkout -b dev
git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:
git branch dev 创建分支
git checkout dev 切换分支
git switch -c dev 创建并切换到新的dev分支
git switch master 切换到已有分支
git branch 查看分支
git merge dev 合并分支
git branch -d dev 删除dev 分支
08 合并分支时解决冲突
当git merge <name>, 发生冲突,就必须首先解决冲突。
git log --graph 命令可以看到分支合并图
09 分支策略
在实际开发中,我们应该按照几个基本原则进行分支管理。 首先,master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活。 干活都在dev分支上,也就是说dev分支是不稳定的,到某个时候,比如1.0发布时,再把dev分支合并到master上; 团队内部每人都在dev分支上干活,每个人都有自己的分支,时不时向dev分支上合并就可以了 团队合作的分支看起来就像这样
10 bug分支
当正在dev分支玩命工作时,突然需要修复master上的致命bug,此时需要将未完成的工作,使用git stash 进行保存。然后切换到master上,产生新的bug分支,修复时,可使用如下命令
git merge --no-ff -m "merge bug fix 101" issue-101
然后切换回dev分支,使用git status 查看当前分支的状态
然后,使用 git stash list命令查看储存列表
Git把stash内容存在某个地方了,但是需要恢复一下,有两个办法:
一是用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除;
另一种方式是用git stash pop,恢复的同时把stash内容也删了:
11 feature分支
当添加新功能时,可以在主分支的基础上,建立一个feature分支,在上面进行开发,完成后合并,最后删除该feature分支。
如果要丢弃一个没有被合并过的分支,可以通过git branch -D <name>强行删除。
12 多人协作
查看远程库信息
git remote
git remote -v
推送主分支
git push origin master
推送开发分支
git push origin dev
抓取分支
git clone git@github.com:lkllk/learngit.git 此时只是抓取了主分支
如果需要拉取开发分支
git checkout -b dev origin/dev
多人协作的工作模式通常是这样:
首先,可以试图用git push origin <branch-name>推送自己的修改
如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并
如果合并有冲突,则解决冲突,并在本地提交.
没有冲突或者解决掉冲突后,再用git push origin <branch-name>推送就能成功!
如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>。