簡體   English   中英

git:如何配置通過合並而不是通過變基來跟蹤分支?

[英]git: how do I configure tracking a branch by merging and not by rebasing?

我想設置一個本地跟蹤分支,它將通過合並而不是通過變基來跟蹤一個遠程分支。
當我執行git pull我想從遠程分支合並,而不是重新設置基准。

當我做:

git checkout -b someBranch origin/someBranch

接着

git remote show origin

我懂了:

Local branches configured for 'git pull':
  someBranch rebases onto remote someBranch
Local refs configured for 'git push':
  someBranch pushes to someBranch (local out of date)

如果我做同樣的事情

git checkout --track origin/someBranch

是否以某種方式在本地配置?
我該如何改變這種行為?

默認情況下,GIT會在拉取過程中merge 如果您正在重新設置基准,那么似乎您已在某些時候更改了該行為。 或有人幫助您。

引用本文(1)本文(2)本文(3) -都描述了如何做相反的事情:

(從1開始)GIT中有一個配置標志,啟用該標志后,將pull的默認行為從merge更改為rebase 檢查是否已設置:

# git >= 1.7.9:
git config --global pull.rebase
git config pull.rebase

在較新的GIT客戶端中,它可以直觀地工作。 如果為true ,則啟用它。 只需關閉標志。

但是,在較舊的版本中,它的工作方式有所不同。

# git < 1.7.9:
git config --global branch.autosetuprebase
git config branch.autosetuprebase

# and also
git config branch.<name>.rebase

autosetuprebase設置為always ,git會在每個新分支上自動設置rebase標志。 這意味着不僅您可能不僅要禁用autosetuprebase ,而且還要關閉每個分支已設置的rebase標志。

(來自#2)
如果您想要另一種方式(例如,您擁有舊的GIT客戶端和大量分支,並且您確實想編寫一個重置標志的腳本),那么另一種選擇是為git pull創建一個別名,該別名將添加--no-rebase選項,將迫使它執行合並。

(來自#3)
本文說,每個分支的rebase標志保存在配置文件中。 所以,把后autosetuprebase過,看來你可以快速禁止rebaseing所有或刪除一些樹枝都rebase從配置文件行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM