如何停用快進合併?在 Git 中它的優缺點是什麼?
可以停用快進合併 -
- 在合併時
- 對於整個倉庫
- 對於所有倉庫。
停用快進合併既有優點也有缺點。
當我們停用快進合併時,git 將執行合併提交以合併來自兩個分支的更改。合併提交的缺點是它變得難以閱讀和理解提交歷史,尤其是在我們有很多分支的情況下。如果您的團隊更喜歡保持分支的線性歷史,那麼應該選擇快進合併。停用快進合併將建立合併提交,這會汙染提交歷史。
停用快進合併(啟用合併提交)的好處是它顯示了提交歷史的真實反映。合併提交將顯示分支何時合併以及如何合併。另一個優點是合併提交有助於輕鬆撤消功能。如果要維護線性歷史,則撤消功能會很複雜。
使用以下命令,我們可以在合併時停用快進合併。
$git merge --no-ff branch_name
我們可以為特定倉庫或所有倉庫停用快進合併。
git config ff no
對於所有倉庫,請使用 --global 標誌
git config --global ff no
示例
讓我們舉一個例子,看看如何使用 --no-ff 選項停用快進合併。在這個例子中,我們建立一個文字檔案 - file1.txt,新增一些內容,暫存,最後提交檔案。讓我們將其稱為提交 c1,如下面的圖所示。我們正在建立一個指向相同提交 c1 的新分支 feature。

現在,我們將透過將新值追加到 file.txt 並提交更改來向前移動 feature 分支。讓我們將提交稱為 c2,如圖所示。

現在我們需要使用以下命令將 feature 分支的更改合併到 master 分支
$git merge --no-ff feature
這將建立一個新的合併提交,並且 Master 分支現在將指向合併提交,如圖所示。

示例
$ git init $ echo abc>file1.txt $ git add . $ git commit -m 'fiel1.txt' $ git branch feature $ git switch feature $ echo pqr>>file1.txt $ git add . $ git commit -m 'pqr' $ git switch master $ git merge --no-ff feature $ git log --all --oneline --graph
輸出
Merge made by the 'recursive' strategy. file1.txt | 1 + 1 file changed, 1 insertion(+) * 62e51ff (HEAD -> master) Merge branch 'feature' |\ | * c94629d (feature) pqr |/ * 35d3b1b fiel1.txt
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP