Git Your configuration specifies to merge with the ref 'release'


問題描述

昨天,以及今天(2014-11-29),使用 TortoiseGit 時碰到了一個詭異的問題. 卸載,清理注冊表,重裝,重啟,各種折騰以后,還是不能解決. 但是23.45分一過,突然靈光一閃,解決了.

問題是這樣的. 使用命令行的 git pushgit fetchgit pull 什么的都沒問題. 但是使用 TortoiseGit 執行拉取(pull ...) 命令時, 就給報錯, 報錯信息如下:

 

[plain]  view plain copy 在CODE上查看代碼片 派生到我的代碼片
 
  1. git.exe pull -v --no-rebase --progress "origin"  
  2.   
  3. /libexec/git-core/git-sh-setup: line 83: /bin/sed: Bad file number  
  4. From https://github.com/cncounter/translation  
  5. = [up to date]      master     -> origin/master  
  6. D:\Develop\Git/libexec/git-core\git-pull: line 268: /bin/tr: Bad file number  
  7. Your configuration specifies to merge with the ref 'master'  
  8. from the remote, but no such ref was fetched.  
  9.   
  10. git 未能順利結束 (退出碼 1) (3510 ms @ 2014/11/29 23:51:56)  


死活各種折騰,根據提示,說: 你的配置指定了去合並(merge)遠端的'master',但沒有獲取(fetch)到這個引用(ref).

 

然后各種測試,各種折騰,總算發現了一點規律. 如果 GitHub 在線倉庫只有一個分支, 也就是 master 時, Pull 拉取就不報錯, 如果在線的遠端倉庫有多個分支,如 master 加上 gh-pages 時,一拉取就報這個錯. 但使用 git 命令行就沒有這個問題. 那么問題來了, 肯定是 TortoiseGit 的哪里配置不對.

想去想來,突然想在 局部倉庫的配置文件中修改下, 先看看會報錯的這種配置:

 

[plain]  view plain copy 在CODE上查看代碼片 派生到我的代碼片
 
  1. [core]  
  2.     repositoryformatversion = 0  
  3.     filemode = false  
  4.     bare = false  
  5.     logallrefupdates = true  
  6.     symlinks = false  
  7.     ignorecase = true  
  8.     hideDotFiles = dotGitOnly  
  9. [remote "origin"]  
  10.     url = https://github.com/cncounter/translation.git  
  11.     fetch = +refs/heads/*:refs/remotes/origin/*  
  12. [branch "master"]  
  13.     remote = origin  
  14.     merge = refs/heads/master  
  15. [remote]  
  16.     pushdefault = origin  
  17. [credential]  
  18.     helper = store  

 

 

查看方法:

  • 打開Git項目根目錄, 找到 .git 文件夾,進去里面編輯 config 這個文件,注意此文件沒有后綴.
  • 還可以在當前項目根目錄下點擊鼠標右鍵, 選擇 TortoiseGit --> Settings(設置 S), 然后選擇左邊的 Git --> 右邊的 編輯本地.git/config 按鈕,即可打開這個文件,如下圖所示:

那么,看看一個正常的pull拉取操作會有哪些日志輸出呢?

 

[plain]  view plain copy 在CODE上查看代碼片 派生到我的代碼片
 
  1. git.exe pull -v --no-rebase --progress "origin" master  
  2.   
  3. From https://github.com/renfufei/asynquence  
  4. * branch            master     -> FETCH_HEAD  
  5. = [up to date]      master     -> origin/master  
  6. Already up-to-date.  
  7.   
  8. 成功 (5959 ms @ 2014/11/30 0:11:27)  


一對比就發現第一行 git pull ..... 最后面少了一個 master. 於是想着在 config 文件里面加上這個 master 看看行不行.

 

修改后的配置如下:

 

[plain]  view plain copy 在CODE上查看代碼片 派生到我的代碼片
 
  1. [core]  
  2.     repositoryformatversion = 0  
  3.     filemode = false  
  4.     bare = false  
  5.     logallrefupdates = true  
  6.     symlinks = false  
  7.     ignorecase = true  
  8.     hideDotFiles = dotGitOnly  
  9. [remote "origin"]  
  10.     url = https://github.com/cncounter/translation.git  
  11.     fetch = +refs/heads/*:refs/remotes/origin/*  
  12. [branch "master"]  
  13.     remote = origin master  
  14.     merge = refs/heads/master  
  15. [remote]  
  16.     pushdefault = origin  
  17. [credential]  
  18.     helper = store  

 

需要注意的是,因為遠端有多個分支,所以這個配置文件里,相應的就多了一個小節 [branch "master"],而 這個小節下面的 remote = origion, 現在加上 master 變為:

 

[plain]  view plain copy 在CODE上查看代碼片 派生到我的代碼片
 
  1. [branch "master"]  
  2.     remote = origin master  
  3.     merge = refs/heads/master   


如下圖所示:

 

保存,再次測試,OK,可以正常拉取:

 

[plain]  view plain copy 在CODE上查看代碼片 派生到我的代碼片
 
  1. git.exe pull -v --no-rebase --progress "origin" master  
  2.   
  3. From https://github.com/cncounter/translation  
  4. * branch            master     -> FETCH_HEAD  
  5. = [up to date]      master     -> origin/master  
  6. Already up-to-date.  
  7.   
  8. 成功 (2246 ms @ 2014/11/30 0:19:25)  


注意看到, 在第一行 git.exe pull .... 最后面多出了一個 master:

 

好了,問題完美解決.[這可能是 TortoiseGit 當前版本的一個 BUG]

總結

有些日子,不適合寫代碼,也不適合調程序, 但適合填坑, 也許坑填的多了,時間一轉,問題就解決了。

 

相關文章

 

  1. 目錄
  2. 安裝及配置Git
  3. 安裝及配置TortoiseGit
  4. Git與TortoiseGit基本操作
  5. MarkDown示例
  6. 解決 TortoiseGit 詭異的 Bad file number 問題
  7. 加入QQ群GitHub家園: 225932282

 

日期: 2014-11-29
作者: 鐵錨: http://blog.csdn.net/renfufei

 

GitHub版本: https://github.com/cncounter/translation/blob/master/tiemao_2014/GitHelp/05_BadFileNumber.md

版權聲明:本文為博主原創文章,未經博主允許不得轉載。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM