歡迎關注富途web開發團隊,缺人從眾上週花了時間把futu web部落格分類,文章,入口搞了一下,主要為了解決seo問題。接下來seo好不好就看效果了。
futu web 部落格位址檔案狀態轉換:
檔案儲存:
上面這兩張圖會對大家理解git命令有很大的幫助。
在使用git
進行版本管理的專案中,當完成乙個特性的開發並將其合併到master
分支時,我們有兩種方式:git merge
和git rebase
。通常,我們對git merge
使用的較多,而對於git rebase
使用的較少,其實git rebase
也是極其強大的一種方法。下面我們就來講一講git merge
和git rebase
的差別和在實際中的使用。
為了更好地觀察執行git merge
和git rebase
之後發生的現象,我們首先來做一些準備工作,即建立乙個專案倉庫,然後在其中構建兩條分支,再增加幾次提交。
具體如下:
建立乙個目錄gittest
在目錄mytest
中新建乙個檔案readme.md
,隨便新增乙個標題,和第乙個列表項add master1
並提交到本地倉庫
在當前分支的基礎上新建一條分支,名為feature
,將列表項add master1
修改為add feature1
並提交到本地倉庫
隨後切換到分枝master
上新增乙個新的列表項add master2
並提交到本地倉庫
隨後切換到分枝feature
上新增乙個新的列表項add feature2
並提交到本地倉庫
重複上面的步驟 4 和 5,直至在master
和feature
上各新增了 4 條列表項
此時你的倉庫分支提交的記錄看起來應該是這樣的:
初始master
分支內容應該是這樣的:
初始feature
分支內容應該是這樣的:
從目錄gittest
拷貝出乙份來,命名為gitmerge
來進行我們的合併操作。
git merge
的使用方法很簡單,假如你想將分支feature
合併到分支master
,那麼只需執行如下兩步即可:
如上圖所示,git merge
有如下特點:
為什麼講git merge
提交的資訊過多可能會影響查詢問題的難度呢?因為在乙個大型專案中,單純依靠git merge
方法進行合併,會儲存所有的提交過程的資訊:引出分支,合併分支,在分支上再引出新的分支等等,類似這樣的操作一多,提交歷史資訊就會顯得雜亂,這時如果有問題需要查詢就會比較困難了。
使用git merge
之後的分支提交記錄如下:
與git merge
一致,git rebase
的目的也是將乙個分支的更改併入到另外乙個分支中去。
如上圖所示,他的主要特點如下:
那麼我們現在來具體操作一下,看看git rebase
是如何做的。
首先,和git merge
不同的是,你需要在feature
分支上進行git rebase master
的操作,意味著讓當前分支feature
相對於 分支master
進行變基:
在解決衝突之後執行git rebase --continue
時遇到了提示,看來我們首先需要把我們的修改存到暫存區,隨後再執行git rebase --continue
。執行之後又遇到了衝突,這次是與feature
分支的第二次提交進行對比出現的衝突,意味著我們需要多次解決同乙個地方的衝突。
繼續重複先解決衝突,再git rebase --continue
的步驟,直到遇到:
意味著完成了feature
最後一次提交的變基操作,至此整個變基就完成了。
再來看看執行git rebase
之後的feature
分支:
完全符合上面所說的執行git rebase
的特點,我們引出feature
分支的位置變了,沒有多餘的提交歷史,且提交的時序也改變了,另外回憶一下,在我們執行變基的過程中也多次解決了同乙個地方的衝突。
這個時候我們再切換到master
分支上,將feature
分支合併進來。
看得出來,feature
分支上的所有提交資訊都會被合併到master
分支上了,這些資訊對我們來說不是必要的,我們在masetr
分支上往往只需要知道合併進來了什麼新的功能即可,這些多餘的資訊可以通過git rebase
的互動模式進行整合,下一節會講到這個。
開啟變基的互動模式只需要傳入乙個引數-i
即可,同時還需要指定對哪些提交進行處理,如:
git rebase -i head~4
複製**
上述命令指定了對當前分支的最近四次提交進行操作。下面我們使用上面這行命令將feature
分支的提交合併。
中間紅框內有一些命令,可以用來處理某次提交的,此處我們使用squash
來將所有的commit
合併成一次提交,編輯並儲存之後會出現編輯提交的資訊的提示,編輯提交即可。
此時再看feature
分支上的提交記錄,會看到只有一次提交了。
此時無論是直接將分支合併到master
還是先變基再合併,master
分支上的提交記錄都會十分清爽了。
當需要保留詳細的合併資訊的時候建議使用git merge
,特別是需要將分支合併進入master
分支時;當發現自己修改某個功能時,頻繁進行了git commit
提交時,發現其實過多的提交資訊沒有必要時,可以嘗試git rebase
。
git merge和rebase的區別
git merge 會生成乙個新得合併節點,而rebase不會 比如 d e test a b c f master 使用merge合併 d e a b c f g test,master 而使用rebase則 a b d e c f test,master 使用git pull時預設是merge,...
git merge和rebase的區別
一直以來都以為rebase是合併衝突的一種手段,和merge一樣的,有哪個都行。今天才決定把他們搞懂了。我是有多麼的懶。git merge 會生成乙個新得合併節點,而rebase不會 d e test a b c f master 使用merge合併後 d e a b c f g test,mast...
git merge和rebase的區別
我從用git就一直用rebase,但是新的公司需要用merge命令,我不是很明白,所以查了一些資料,總結了下面的內容,如果有什麼不妥的地方,還望指正,我一定虛心學習。標題上的兩個命令 merge和rebase都是用來合併分支的。這裡不解釋rebase命令,以及兩個命令的原理,詳細解釋參考這裡。下面的...