Git commit與pull的先后順序及說明
整理這個(gè)問題的起因
1.前些天一個(gè)晚輩問我關(guān)于commit與pull的先后順序問題
2.今天又與同事爭(zhēng)論了一番commit與pull的先后順序問題
我的建議是
1.在本地修改與遠(yuǎn)程代碼無沖突的情況下,優(yōu)先使用:pull->commit->push
2.在本地修改與遠(yuǎn)程代碼有沖突的情況下,優(yōu)先使用:commit->pull->push
我們?cè)趺慈ゴ_定是否有沖突呢?
一般我們?cè)诤献鏖_發(fā)一個(gè)項(xiàng)目的過程中,都會(huì)有分工,有時(shí)會(huì)兩個(gè)人同時(shí)修改一個(gè)類,有時(shí)整個(gè)類都是你自己在開發(fā)。
如果都是自己在開發(fā)的類,當(dāng)然優(yōu)先使用pull->commit->push
,為什么我更傾向這種方式呢,因?yàn)檫@樣會(huì)減少Git沒有必要的merge。
如果有沖突的情況下,先pull了會(huì)出現(xiàn)什么問題呢?
如果你的判斷失誤,在本地修改與遠(yuǎn)程代碼有沖突的情況下,先執(zhí)行了git-pull
,即使是這樣也不用擔(dān)心,git會(huì)給你一個(gè)錯(cuò)誤提示,這時(shí)候你再去執(zhí)行commit->pull->push
也是沒有問題的。
我們可以看一下
下面這個(gè)git提交記錄的截圖:
圖中,
我們可以看到四次merge的提交,實(shí)際上這四次都是沒有沖突的merge,這是commit->pull->push
中,git自動(dòng)生成的merge。
如果這里我們采用pull->commit->push
呈現(xiàn)出來的就會(huì)是一條沒有merge、沒有多余commit的一條完美分支。
git-pull(https://git-scm.com/docs/git-pull)
Incorporates changes from a remote repository into the current branch.
In its default mode, git pull is shorthand for git fetch followed by git merge FETCH_HEAD.
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
i++循環(huán)與i-–循環(huán)的執(zhí)行效率(遞增與遞減效率)
i++循環(huán)與i-–循環(huán)的執(zhí)行效率(遞增與遞減效率),需要的朋友可以參考下。2011-01-01Git如何實(shí)現(xiàn)撤銷提交(命令行+IDEA)
這篇文章主要介紹了Git如何實(shí)現(xiàn)撤銷提交(命令行+IDEA)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12GIT相關(guān)-IDEA/ECLIPSE工具配置的教程詳解
這篇文章主要介紹了GIT相關(guān)-IDEA/ECLIPSE工具配置的教程,本文通過實(shí)例圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-10-10永恒之藍(lán)實(shí)戰(zhàn)教程之Mac通過Metasploit攻擊Server2008的詳細(xì)過程
這篇文章主要介紹了永恒之藍(lán)實(shí)戰(zhàn)教程?Mac通過Metasploit攻擊Server2008,首先準(zhǔn)備一個(gè)Server2008,主要功能是使網(wǎng)絡(luò)上的機(jī)器能夠共享計(jì)算機(jī)文件、打印機(jī)、串行端口和通訊等資源,需要的朋友可以參考下2022-08-08