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

摘要:
问题描述昨天,以及今天(2014-11-29),使用TortoiseGit时碰到了一个诡异的问题.卸载,清理注册表,重装,重启,各种折腾以后,还是不能解决.但是23.45分一过,突然灵光一闪,解决了.问题是这样的.使用命令行的gitpush,gitfetch,gitpull什么的都没问题.但是使用TortoiseGit执行拉取(pull...)命令时,就给报错,报错信息如下:[plain]view

问题描述

昨天,以及今天(2014-11-29),使用 TortoiseGit 时碰到了一个诡异的问题. 卸载,清理注册表,重装,重启,各种折腾以后,还是不能解决. 但是23.45分一过,突然灵光一闪,解决了.

问题是这样的. 使用命令行的git push,git fetch,git pull什么的都没问题. 但是使用 TortoiseGit 执行拉取(pull ...) 命令时, 就给报错, 报错信息如下:

  1. git.exepull-v--no-rebase--progress"origin"
  2. /libexec/git-core/git-sh-setup:line83:/bin/sed:Badfilenumber
  3. Fromhttps://github.com/cncounter/translation
  4. =[uptodate]master->origin/master
  5. D:DevelopGit/libexec/git-coregit-pull:line268:/bin/tr:Badfilenumber
  6. Yourconfigurationspecifiestomergewiththeref'master'
  7. fromtheremote,butnosuchrefwasfetched.
  8. git未能顺利结束(退出码1)(3510ms@2014/11/2923:51:56)

死活各种折腾,根据提示,说: 你的配置指定了去合并(merge)远端的'master',但没有获取(fetch)到这个引用(ref).

然后各种测试,各种折腾,总算发现了一点规律. 如果 GitHub 在线仓库只有一个分支, 也就是 master 时, Pull 拉取就不报错, 如果在线的远端仓库有多个分支,如master加上gh-pages时,一拉取就报这个错. 但使用 git 命令行就没有这个问题. 那么问题来了, 肯定是 TortoiseGit 的哪里配置不对.

想去想来,突然想在 局部仓库的配置文件中修改下, 先看看会报错的这种配置:

  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按钮,即可打开这个文件,如下图所示:

Git Your configuration specifies to merge with the ref 'release'第5张

那么,看看一个正常的pull拉取操作会有哪些日志输出呢?

  1. git.exepull-v--no-rebase--progress"origin"master
  2. Fromhttps://github.com/renfufei/asynquence
  3. *branchmaster->FETCH_HEAD
  4. =[uptodate]master->origin/master
  5. Alreadyup-to-date.
  6. 成功(5959ms@2014/11/300:11:27)

一对比就发现第一行 git pull ..... 最后面少了一个 master. 于是想着在 config 文件里面加上这个 master 看看行不行.

修改后的配置如下:

  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=originmaster
  14. merge=refs/heads/master
  15. [remote]
  16. pushdefault=origin
  17. [credential]
  18. helper=store

需要注意的是,因为远端有多个分支,所以这个配置文件里,相应的就多了一个小节[branch "master"],而 这个小节下面的 remote = origion, 现在加上 master 变为:

  1. [branch"master"]
  2. remote=originmaster
  3. merge=refs/heads/master

如下图所示:

Git Your configuration specifies to merge with the ref 'release'第12张

保存,再次测试,OK,可以正常拉取:

  1. git.exepull-v--no-rebase--progress"origin"master
  2. Fromhttps://github.com/cncounter/translation
  3. *branchmaster->FETCH_HEAD
  4. =[uptodate]master->origin/master
  5. Alreadyup-to-date.
  6. 成功(2246ms@2014/11/300:19:25)

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

Git Your configuration specifies to merge with the ref 'release'第15张

好了,问题完美解决.[这可能是 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

版权声明:本文为博主原创文章,未经博主允许不得转载。

免责声明:文章转载自《Git Your configuration specifies to merge with the ref 'release'》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇React 表格行点击事件CSS实现的几款不错的菜单栏下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

[git] fatal: This operation must be run in a work tree

正在使用git init --bare 它的成立裸仓库后,,正在使用git 其他命令将出现fatal:This operation must be run in a work tree 问题,途径: 第一touch readme 当你创建一个光秃秃的仓库,因为,不产生readme 文件。情况的出现不能提交。 然后,它可以使用git init,git ad...

Ubuntu Git GUI工具GitKraken安装

step1:下载 下载地址:https://www.gitkraken.com/download/linux-deb step2:安装 终端输入命令:sudo dpkg -i gitkraken-amd64.deb 如果安装不成功,输入命令: sudo apt-get -f install 然后重新输入命令: sudo dpkg -i gitkraken-...

安装git

安装Git主要有两种安装方式:一种是通过编译源代码来安装;另一种是使用为特定平台预编译好的安装包。从源码安装的好处就是可以是最新的版本。 在Linux上安装预编译好的Git二进制安装包在Fedora上用yum安装:$ yum install git-core;在Ubuntu这类Debian体系的系统上,用apt-get安装:$ apt-get instal...

Gerrit

1 -主配置文件 主配置文件位于$GERRIT_SITE/etc/gerrit.config目录 [gerrit@mt101 ~]$ cat gerrit_testsite/etc/gerrit.config [gerrit] basePath = git canonicalWebUrl = http://192.168.16.101:80...

源代码管理之Git命令的使用

目录 02.源代码管理之Git命令的使用 2.Git命令行演练-个人开发 2.1 如何学习git指令 2.2 初始化创建本地仓库 2.3 个人开发基本演练 2.4 Git的基本常识 3.Git命令行演练-团队开发 3.1 共享库分类 3.2 搭建本地共享库 3.3 演示团队多人开发 3.4 Git补充 4.Git常用命令 4.1 查看、添...

windows下git乱码解决方案

为了搞定git乱码问题,几乎把网上所有git乱码文章看了一遍,总算让我解决了。 我用的git和TortoiseGit版本: msysgit: V1.7.9 http://msysgit.googlecode.com/files/Git-1.7.9-preview20120201.exe Tortoisegit: V1.7.7.0 http://tortoi...