解决 TortoiseGit 诡异的 Bad file number 问题(转)
问题描述
昨天,以及今天(2014-11-29),使用 TortoiseGit 时碰到了一个诡异的问题. 卸载,清理注册表,重装,重启,各种折腾以后,还是不能解决. 但是23.45分一过,突然灵光一闪,解决了.
问题是这样的. 使用命令行的 git push, git fetch, git pull 什么的都没问题. 但是使用 TortoiseGit 执行拉取(pull ...) 命令时, 就给报错, 报错信息如下:
- git.exe pull -v --no-rebase --progress "origin"
- /libexec/git-core/git-sh-setup: line 83: /bin/sed: Bad file number
- From https://github.com/cncounter/translation
- = [up to date] master -> origin/master
- D:\Develop\Git/libexec/git-core\git-pull: line 268: /bin/tr: Bad file number
- Your configuration specifies to merge with the ref 'master'
- from the remote, but no such ref was fetched.
- git 未能顺利结束 (退出码 1) (3510 ms @ 2014/11/29 23:51:56)
死活各种折腾,根据提示,说: 你的配置指定了去合并(merge)远端的'master',但没有获取(fetch)到这个引用(ref).
然后各种测试,各种折腾,总算发现了一点规律. 如果 GitHub 在线仓库只有一个分支, 也就是 master 时, Pull 拉取就不报错, 如果在线的远端仓库有多个分支,如 master 加上 gh-pages 时,一拉取就报这个错. 但使用 git 命令行就没有这个问题. 那么问题来了, 肯定是 TortoiseGit 的哪里配置不对.
想去想来,突然想在 局部仓库的配置文件中修改下, 先看看会报错的这种配置:
- [core]
- repositoryformatversion = 0
- filemode = false
- bare = false
- logallrefupdates = true
- symlinks = false
- ignorecase = true
- hideDotFiles = dotGitOnly
- [remote "origin"]
- url = https://github.com/cncounter/translation.git
- fetch = +refs/heads/*:refs/remotes/origin/*
- [branch "master"]
- remote = origin
- merge = refs/heads/master
- [remote]
- pushdefault = origin
- [credential]
- helper = store
查看方法:
- 打开Git项目根目录, 找到 .git 文件夹,进去里面编辑
config这个文件,注意此文件没有后缀. - 还可以在项目根目录下点击鼠标右键, 选择 TortoiseGit --> Settings(设置 S), 然后选择左边的 Git --> 右边的 编辑本地.git/config 按钮,即可打开这个文件,如下图所示:

那么,看看一个正常的pull拉取操作会有哪些日志输出呢?
- git.exe pull -v --no-rebase --progress "origin" master
- From https://github.com/renfufei/asynquence
- * branch master -> FETCH_HEAD
- = [up to date] master -> origin/master
- Already up-to-date.
- 成功 (5959 ms @ 2014/11/30 0:11:27)
一对比就发现第一行 git pull ..... 最后面少了一个 master. 于是想着在 config 文件里面加上这个 master 看看行不行.
修改后的配置如下:
- [core]
- repositoryformatversion = 0
- filemode = false
- bare = false
- logallrefupdates = true
- symlinks = false
- ignorecase = true
- hideDotFiles = dotGitOnly
- [remote "origin"]
- url = https://github.com/cncounter/translation.git
- fetch = +refs/heads/*:refs/remotes/origin/*
- [branch "master"]
- remote = origin master
- merge = refs/heads/master
- [remote]
- pushdefault = origin
- [credential]
- helper = store
需要注意的是,因为远端有多个分支,所以这个配置文件里,相应的就多了一个小节 [branch "master"],而 这个小节下面的 remote = origion, 现在加上 master 变为:
- [branch "master"]
- remote = origin master
- merge = refs/heads/master
如下图所示:

保存,再次测试,OK,可以正常拉取:
- git.exe pull -v --no-rebase --progress "origin" master
- From https://github.com/cncounter/translation
- * branch master -> FETCH_HEAD
- = [up to date] master -> origin/master
- Already up-to-date.
- 成功 (2246 ms @ 2014/11/30 0:19:25)
注意看到, 在第一行 git.exe pull .... 最后面多出了一个 master:

好了,问题完美解决.[这可能是 TortoiseGit 当前版本的一个 BUG]
总结
有些日子,不适合写代码,也不适合调程序, 但适合填坑, 也许坑填的多了,时间一转,问题就解决了。
相关文章
- 目录
- 安装及配置Git
- 安装及配置TortoiseGit
- Git与TortoiseGit基本操作
- MarkDown示例
- 解决 TortoiseGit 诡异的 Bad file number 问题
- 加入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 问题(转)的更多相关文章
- 解决 TortoiseGit 诡异的 Bad file number 问题
http://blog.csdn.net/renfufei/article/details/41648061 问题描述 昨天,以及今天(2014-11-29),使用 TortoiseGit 时碰到了一 ...
- (转)解决 TortoiseGit 诡异的 Bad file number 问题
此问题,请不要使用 rebase, 下载最新的 TortoiseGit 即可: TortoiseGit-2.3中文版与Git安装包_手册: http://download.csdn.net/detai ...
- GitHub上传不了的解决 ssh: connect to host github.com port 22: Bad file number git did not exit cleanly (exit code 128)
问题情况 本来一直用的是github的客户端,结果现在上传的时候出问题了,去网站上看,新项目已经创建,但是代码却怎么都上传不上去.于是只好用命令行的方式解决. Tortoisegit上是这样说的: g ...
- OGG-01224 Bad file number
今天在看OGG的日志时.发现例如以下OGG-01224 Bad file number错误.查阅资料才知道port不可用,看了一下mgr的參数,发现是设置的DYNAMICPORTLIST 动态port ...
- 解决 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 ...
- 解决 Github:failed to add file / to index 问题
参考: Github:failed to add file / to index 解决 Github:failed to add file / to index 问题 在通过Github for Ma ...
- 解决 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 解决 ...
- 解决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 ...
- 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. 找不到指定的模块. 错误提示 ...
随机推荐
- Cocos性能优化工具的开发介绍Visual Studio内存泄漏检测工具——Visual Leak Detector
然后,Windows下有什么好的内存泄漏检測工具呢?微软提供Visual Studio开发工具本身没有什么太好的内存泄漏检測功能.我们能够使用第三方工具Visual Leak Detector(下面简 ...
- Lua语言在Wireshark中使用(转)
1. 检查Wireshark的版本是否支持Lua 打开Wireshark,点击“HelpàAbout Wireshark”菜单,查看弹出的对话框,如果有“with Lua 5.1”表示支持 ...
- C++习题 对象转换
[Submit][Status][Web Board] Description 定义一个Teacher(教师)类(教师号,姓名,性别,薪金)和一个Student(学生)类(学号,姓名,性别,成绩),二 ...
- 重新想象 Windows 8 Store Apps (21) - 动画: ThemeTransition(过渡效果)
原文:重新想象 Windows 8 Store Apps (21) - 动画: ThemeTransition(过渡效果) [源码下载] 重新想象 Windows 8 Store Apps (21) ...
- 【SICP读书笔记(一)】正则序展开的特殊情况
scheme解释器有两种实现方式,一种是应用序,先对每个参数求值,再以首过程对所有求得的参数求值. 第二种是正则序,会“完全展开然后归约”(书中原文) SICP中的练习1.5,让我困惑了一下.原题如下 ...
- 精致的外观Request
为什么要说Request精致的外观?请注意,我们这里所说的并不总是理解含义的外观门面,事实上,它使用的立面设计图案.使用的主要考虑数据安全的门面.它涉及到一个更大的系统系统的多个子系统之间的互动沟通. ...
- Vc6.0打开该文件坠毁
这是一个微软bug,下面是用户给出的溶液: http://blog.163.com/wjatnx@yeah/blog/static/12758622820138110530322/ http://bl ...
- android v7兼容包RecyclerView的使用(四)——点击事件的不同方式处理
前三篇文章 android v7兼容包RecyclerView的使用(三)--布局管理器的使用 android v7兼容包RecyclerView的使用(二) android v7兼容包Recycle ...
- Android UI - 实现广告Banner旋转木马效果
Android UI - 实现广告Banner旋转木马效果 前言 本篇博客要分享的一个效果是实现广告Banner轮播效果,这个效果也比較常见,一些视频类应用就常常有,就拿360影视大全来举例吧: 用红 ...
- 什么时候PHP经验MySQL存储过程
1.MySQL存储过程 数据库语言,我们经常使用的操作SQL语句必须首先编译在运行时.然后运行,存储过程(Stored Procedure)它被设置为完成一个特定的功能SQL报表设置.编译存储在数据库 ...