一開始做完推送都是新建分支推上去,等別人來合并,等到要自己合并的時(shí)候一臉懵逼。
用IDE習(xí)慣了也不是什么好事啊,看到命令行就有恐懼感。
自己合并的時(shí)候我第一次是直接在master上推的,推之前還直接merge了其他分支,果斷被點(diǎn)名批評(píng)了,帶頭大哥對(duì)rebase有很強(qiáng)的執(zhí)念。
有樣學(xué)樣的第一次大概是:
git status
git commit -a
然后....就卡住了
因?yàn)檫@里直接進(jìn)入了vim模式 ,需要為創(chuàng)建commit message,我寫完完全不知道要如何從vim模式中退出,或者提交。
.......
大概是 i 編輯 Esc退出編輯 冒號(hào)進(jìn)入命令行 wq 提交 嗯 也許吧...
然后就是一連串不知所以然的
git fetch
git pull
git push
不知道該說點(diǎn)啥了
多看點(diǎn)書吧孩子
所以說 我們來講講 其他的
其實(shí)合并分支可以分為兩種 merge 和 rebase
- 前者就是合并 后者又叫衍合/基線重演
- 合并會(huì)保留分支 結(jié)果為多分支合并的直接結(jié)果(待深入理解)
- 衍合則不會(huì)保留分支,時(shí)間線看起來比較簡(jiǎn)潔,相當(dāng)于在以分支的共同祖先為基線,將各分支所產(chǎn)生的變化按序在祖先上進(jìn)行重演,最后合并成一條直線(emmmm.....)
幾點(diǎn)筆記:
- git pull 相當(dāng)于 git fetch + git merge 但是隱藏了其中一部分的細(xì)節(jié),可能會(huì)影響排錯(cuò)過程,因此更多時(shí)候應(yīng)該用git fetch + git merge / git rebase 這樣的分步進(jìn)行更穩(wěn)妥
- git push的行為受到本地push.default的影響,這個(gè)具體根據(jù)git的不同版本會(huì)有不同的反應(yīng),push的影響也會(huì)有所不同。