【Git学习笔记5】以普通模式合并(--no-ff)、push到远程库及分支管理策略
一、以普通模式合并(--no-ff)
合并分支時,如果可能,Git會用Fast forward模式,但這種模式下,刪除分支后,會丟掉分支信息,啥?不記得啦?那等會我們學習完給你再舉個栗子吧,看看這個fast forward的示意圖。
如果要強制禁用Fast forward模式,Git就會在merge時生成一個新的commit,這樣,從分支歷史上就可以看出分支信息。下面我們實戰一下--no-ff方式的git merge:
第一步:仍然創建并切換dev分支:
第二步:修改readme.txt
第三步:提交一個新的commit
第四步:切換回master分支
第五步:git merge --no-ff -m "merge with no-ff" dev
因為本次合并要創建一個新的commit,所以加上-m參數,把commit描述寫進去。(抱歉哈,我手抖,打錯啦,commit要有意義,所以你就不要和我一樣手抖啦),合并后,我們用git log看看分支歷史:
可以看到,不使用Fast forward模式,merge后就像這樣:
其實我們已經Fast forward模型操作過啦,那還是再復習一波吧。
看到兩個的區別了么?
合并分支時,加上--no-ff參數就可以用普通模式合并,合并后的歷史有分支,能看出來曾經做過合并,而fast forward合并就看不出來曾經做過合并。
二、push到遠程庫
搞了這么久,一直都沒有推到遠程庫去,push一波。
如果你如果你遇到了問題:
Failed with error: RPC failed; curl 52 Empty reply from server
莫慌,發現原因是:http緩存不夠或者網絡不穩定,網絡不穩定可以選擇等下在push,或者用以下解決方案,避免通過下面解決方案導致未知問題,我建議還是等下再push一下。
解決方案如下:
httpBuffer加大,git config --global http.postBuffer 524288000? ?// 這行添加后就生效了
壓縮配置,git config --global core.compression -1
修改配置文件
export GIT_TRACE_PACKET=1
export GIT_TRACE=1
export GIT_CURL_VERBOSE=1
以上配置文件修改,也可以大幅度提升git 克隆速度。
操作完啦,來學習一波:
git push命令用于將本地分支的更新,推送到遠程主機。它的格式與git pull命令相仿。
git push <遠程主機名> <本地分支名>:<遠程分支名>
git push --all origin,命令表示,將所有本地分支都推送到origin主機。如果遠程主機的版本比本地版本更新,推送時Git會報錯,要求先在本地做git pull合并差異,然后再推送到遠程主機。這時,如果你一定要推送,可以使用--force選項;
git push --force origin ,命令使用--force選項,結果導致遠程主機上更新的版本被覆蓋。除非你很確定要這樣做,否則應該盡量避免使用--force選項。
三、分支管理策略
需要非常深刻知道的分支策略呀。在實際開發中,我們應該按照幾個基本原則進行分支管理:
第一,master分支應該是非常穩定的,也就是僅用來發布新版本,平時不能在上面干活;
第二,干活都在dev分支上,也就是說,dev分支是不穩定的,到某個時候,比如1.0版本發布時,再把dev分支合并到master上,在master分支發布1.0版本;
第三,我們和小伙伴們每個人都在dev分支上干活,每個人都有自己的分支,時不時地往dev分支上合并就可以了。
所以,團隊合作的分支看起來就像這樣:
往dev上merge,然后再在master上merge。
說句題外話:小白做菜的風格你看到了嗎?就是圖多文字少,因為實操證明一切。就是這么干!
往期回顧
來和小伙伴們一起向上生長呀!
掃描下方二維碼,添加小詹微信,可領取千元大禮包并申請加入 Python 學習交流群,群內僅供學術交流,日常互動,如果是想發推文、廣告、砍價小程序的敬請繞道!一定記得備注「交流學習」,我會盡快通過好友申請哦!
👆長按識別,添加微信
(添加人數較多,請耐心等待)
👆長按識別,關注小詹
(掃碼回復 1024 領取程序員大禮包)
總結
以上是生活随笔為你收集整理的【Git学习笔记5】以普通模式合并(--no-ff)、push到远程库及分支管理策略的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 程序员到底该怎么给女朋友挑礼物
- 下一篇: 超简单,带你学会多线程爬虫