[英]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.