No commit
( 拉取代碼時不提交本地代碼)
Squash commit
( 提交代碼時旦签,需要刪除之前的遠程分支;使用git squash將多個commit信息合并成一個甚疟,并再次提交到遠程分支崖疤,合并到master上.)
使用git squash目的:如果其他同事提交代碼到master(develop)板熊,你rebase遠程master時可能會遇到?jīng)_突帝嗡,使用squash可以使解決沖突“簡單化”;頻繁commit導(dǎo)致多個無意義提交信息,容易引起他人理解git分支樹困惑洛勉,使用squash讓提交信息準確明了。?
缺點:將多次commit信息合并成一個如迟,提交信息的減少導(dǎo)致理解困難收毫,版本回滾會造成麻煩。
No fast forward
( 使得每一次的合并都創(chuàng)建一個新的commit記錄 )
Fast-forward?進行合并
c.txt |??? 1 +
d.txt |??? 1 +
2 files changed, 2 insertions(+), 0 deletions(-)
create mode 100644 c.txt
create mode 100644 d.txt
可以看出這是一次fast-forward式的合并殷勘,且合并完之后的視圖為扁平狀此再,看不出develop分支開發(fā)的任何信息。
no-fast forward進行合并
—no-ff (no fast foward)玲销,使得每一次的合并都創(chuàng)建一個新的commit記錄输拇。即使這個commit只是fast-foward,用來避免丟失信息贤斜。
(master)$?git?merge –no-ff develop
Merge made by recursive.
c.txt | 2 +-
d.txt | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)