问题描述

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

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

  1. git.exe pull -v --no-rebase --progress "origin"
  2. /libexec/git-core/git-sh-setup: line 83: /bin/sed: Bad file number
  3. From https://github.com/cncounter/translation
  4. = [up to date]      master     -> origin/master
  5. D:\Develop\Git/libexec/git-core\git-pull: line 268: /bin/tr: Bad file number
  6. Your configuration specifies to merge with the ref 'master'
  7. from the remote, but no such ref was fetched.
  8. git 未能顺利结束 (退出码 1) (3510 ms @ 2014/11/29 23: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 按钮,即可打开这个文件,如下图所示:

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

  1. git.exe pull -v --no-rebase --progress "origin" master
  2. From https://github.com/renfufei/asynquence
  3. * branch            master     -> FETCH_HEAD
  4. = [up to date]      master     -> origin/master
  5. Already up-to-date.
  6. 成功 (5959 ms @ 2014/11/30 0: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 = origin master
  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 = origin master
  3. merge = refs/heads/master

如下图所示:

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

  1. git.exe pull -v --no-rebase --progress "origin" master
  2. From https://github.com/cncounter/translation
  3. * branch            master     -> FETCH_HEAD
  4. = [up to date]      master     -> origin/master
  5. Already up-to-date.
  6. 成功 (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

解决 TortoiseGit 诡异的 Bad file number 问题(转)的更多相关文章

  1. 解决 TortoiseGit 诡异的 Bad file number 问题

    http://blog.csdn.net/renfufei/article/details/41648061 问题描述 昨天,以及今天(2014-11-29),使用 TortoiseGit 时碰到了一 ...

  2. (转)解决 TortoiseGit 诡异的 Bad file number 问题

    此问题,请不要使用 rebase, 下载最新的 TortoiseGit 即可: TortoiseGit-2.3中文版与Git安装包_手册: http://download.csdn.net/detai ...

  3. GitHub上传不了的解决 ssh: connect to host github.com port 22: Bad file number git did not exit cleanly (exit code 128)

    问题情况 本来一直用的是github的客户端,结果现在上传的时候出问题了,去网站上看,新项目已经创建,但是代码却怎么都上传不上去.于是只好用命令行的方式解决. Tortoisegit上是这样说的: g ...

  4. OGG-01224 Bad file number

    今天在看OGG的日志时.发现例如以下OGG-01224 Bad file number错误.查阅资料才知道port不可用,看了一下mgr的參数,发现是设置的DYNAMICPORTLIST 动态port ...

  5. 解决 dpkg: warning: files list file for package 'x' missing 问题

    参考: dpkg: warning: files list file for package 'x' missing 解决 dpkg: warning: files list file for pac ...

  6. 解决 Github:failed to add file / to index 问题

    参考: Github:failed to add file / to index 解决 Github:failed to add file / to index 问题 在通过Github for Ma ...

  7. 解决 Error: ENOSPC: System limit for number of file watchers reached

    manjaro 18.0 kde版本 运行 yarn test报错 Error: ENOSPC: System limit for number of file watchers reached 解决 ...

  8. 解决clang: error: no such file or directory: such file or directory:的问题

    一,详细问题描述 clang: error: no such file or directory: 'xxx/src/GGBaCollectionViewCell.m' clang: error: n ...

  9. SQLite 解决:Could not load file or assembly 'System.Data.SQLite ... 试图加载格式不正确的程序/or one of its dependencies. 找不到指定的模块。

     Could not load file or assembly 'System.Data.SQLite.dll' or one of its dependencies. 找不到指定的模块. 错误提示 ...

随机推荐

  1. String,StringBuffer和StringBuilder的异同

                                                                    String,StringBuffer和StringBuilder的异同 ...

  2. struts2在<s:select>用动态标签

    后台传过来的必要性userlist成为一个下拉菜单.因此,认为使用<s:select>.但设置了很久设置的属性,在这个下跌. JSP代码: <s:select label=" ...

  3. mysql table is marked as crashed and last (automatic?) repair failed

    1.同事的服务器在mysqldump备份的时候报错了 这个原因是myisam的表数据太多,在某个时刻, 存放数据的这个MyISAM表数据急速长大. 比如一些log表, 当硬盘写满了.这个时候还在继续写 ...

  4. 《Java程序书面采访猿收藏》之 instanceof的作用是什么

    instanceof它是Java二元运算语言,它的作用是推断对象变量引用被指向的类型是一类(或接口.抽象类.父亲)示例.即,对象是否是它的一个实例离开它的类的权.返回boolean数据类型. 常见的使 ...

  5. 使用 WPF 实现所见即所得HTML编辑器

    Introduction In this tip, you will learn the use of WPF webbrowser control and the use of the librar ...

  6. Xamarin.Android 入门实例(4)之实现对 SQLLite 进行添加/修改/删除/查询操作

    1.Main.axml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns: ...

  7. Gradle入门系列(转)

    Gradle是一种构建工具,它抛弃了基于XML的构建脚本,取而代之的是采用一种基于Groovy的内部领域特定语言.近期,Gradle获得了极大的关注,这也是我决定去研究Gradle的原因. 这篇文章是 ...

  8. hdu 3333 树状数组+离线处理

    http://acm.hdu.edu.cn/showproblem.php?pid=3333 不错的题,想了非常久不知道怎么处理,并且答案没看懂,然后找个样例模拟下别人的代码立即懂了---以后看不懂的 ...

  9. Android 学习历程摘要(二)

    1.资源文件命名仅仅能小写,否则会报错生成不了R.java文件 2.R文件导包时应该导入自己project的包,而不是android.R 3.数据库操作使用SqliteOpenHelper 4.val ...

  10. ISAPI_Rewrite不起作用的N种原因

    现在经常用到ISAPI_Rewrite,遇到的问题就是在本地测试的时候,一切没有问题,到服务器上,竟然不起作用.郁闷~经过我的一些探索,发现了比起作用的原因如下:1.IIS_WPG对ISAPI_Rew ...