2014-04-14 64 views
7

我已經建立了混帳與git autosetuprebase無法正常工作?

git config --global branch.autosetuprebase always 

,並在我的~/.gitconfig文件看起來不錯:

[branch] 
    autosetuprebase = always 

然而,當我做

git pull 

他執行合併(我刪除公司具體數據):

From gitlab:***/*** 
    8fd1d96..0d064a3 master  -> origin/master 
* [new tag]   *** -> *** 
Merge made by the 'recursive' strategy. 

他爲什麼不執行rebase?請注意,他從遠程拉唯一的事情就是一個標籤,並在本地沒有改變文件的次要代碼改變...

編輯:我有Git版本1.8.4.5

編輯:此是我的本地.git/config文件:

[core] 
     repositoryformatversion = 0 
     filemode = true 
     logallrefupdates = true 
[branch "master"] 
[remote "origin"] 
     url = [email protected]:***/***.git 
     fetch = +refs/heads/*:refs/remotes/origin/* 
[branch "master"] 
     remote = origin 
     merge = refs/heads/master 
+0

是否檢查過本地.git配置文件。它覆蓋了它嗎? –

+0

@SukhmeetSingh:我在我的問題中添加了它...它不覆蓋autosetuprebase選項。 –

+0

也許你錯過了'git help config'中的部分,它說:「當一個新的分支是用git分支創建的,或者git checkout跟蹤另一個分支時......」。我不認爲'autosetuprebase'會追溯性地影響你在repo中已經有的分支(比如'master')。你必須手動調整那些... – twalberg

回答

9

gitbranch.autosetuprebase選項隻影響它被設置後創建的分支。從手動頁面(git help config):

branch.autosetuprebase 
     When a new branch is created with git branch or git checkout that tracks another branch, this variable 
     tells Git to set up pull to rebase instead of merge (see "branch.<name>.rebase"). When never, rebase is ... 

對於分支已經存在,例如master,有git config branch.master.rebase true,如果需要可以編寫多個分支/回購。