因为是主线上的bug,所以先切回到主线上去,不过本地的主线可能有点旧了,所以把本地的master分支删掉,然后和远端同步一下之后再从远端把master分支检出
$ git branch -d master
$ git fetch origin
$ git checkout master
更新master分支现在master分支是库上最新的了,我们可以放心的从当前提交拉出一个新的bug修复分支了
作为一个有即将可能成为优秀程序员的人,当然要学会偷懒了,使用checkout -b
一起完成新建和切换分支的操作
$ git checkout -b 666
相当于
$ git branch 666
$ git checkout 666
新建加切换
然后「666」分支上进行修改,提交,推送到远端
$ vim 1.py
$ git add .
$ git commit -m 'fix 「666」'
$ git push --set-upstream origin 666
完成修改后提交
好了,现在使用git checkout
切回到原来工作的分支去就行了。
不过假设你是管理员,那么你就需要多干一点事情了,把这个提交给合并到主线去才能算完成工作。
$ git checkout master
$ git merge 666
$ git branch -d 666
合并并删除无用分支
假设有两个人一起在开发,那么就可能会出现,修改了同一行内容的情况。这样合并的时候就会报出冲突。
首先要构造一个这样的环境
在当前的提交「A」上拉出两个分支「B」「C」,并修改同一个文件,然后先后合入到原来的提交「A」上。
检出B并修改
检出C并修改
先合并B然后合并C
image-20190404210904817
查看冲突:
查看冲突
只有<<<<<<<
和=======
和 >>>>>>>
都去除掉了才能正常提交
其中=======
上面是「HEAD」的部分
下面是「C_」分支部分
image-20190404211057676
提交之前也还是需要进行提交,这样本地的位置「HEAD」就指向本地的master了
解决冲突后提交
$ git branch
$ git branch -v
image-20190404211426258
image-20190404211504986
$ git branch --no-merged # 查看还未合并的分支
$ git branch --merged # 查看已经合并的分支
查看已合并的分支
新建了一个分支「D_
」并完成了一次提交,切换回「master」的时候使用查看还未合并的分支
命令可以看到分支「D_
」
查看未合并的分支