也许 git-rebase 出了问题

9

第三次更新

更多信息:

  • 在git-bash shell中,命令按预期工作

    • 在git-bash shell中,调用Git\bin\git.exe

    • Git\bin是sh.exe所在的位置

  • 在PowerShel(或cmd或tcc)中调用Git\cmd\git.exe

  • 即使将Git\bin添加到PATH(在Git\cmd之后),脚本也无法工作

非常令人沮丧...

第二次更新

似乎所有由.exe文件实现的git命令都可以工作:git-fetch.exe、git-merge.exe、git-push.exe等。

似乎所有作为脚本实现的命令都不能工作:

Git\libexec\git-core\git-pull
Git\libexec\git-core\git-rebase

等等,看起来git.exe正在调用运行libexec\git-core脚本的内容出现了问题...

第一次更新

又出问题了... "git pull"出了点小问题(前天还好好的):

I:\Work\bitbucket\PluralSight\proj1 [work2]> git stat
On branch work2   nothing to commit, working directory clean
I:\Work\bitbucket\PluralSight\proj1 [work2]> git fetch
Password for 'https://user@bitbucket.org':
I:\Work\bitbucket\PluralSight\proj1 [work2]> git pull
*fatal: 'pull' appears to be a git command, but we
were not able to execute it. Maybe git-pull is broken?*
I:\Work\bitbucket\PluralSight\proj1 [work2]>

我已经卸载/重新安装了msysgit。在PowerShell和cmd.exe中都得到了相同的结果。

原始帖子

[work]> git rebase master
fatal: 'rebase' appears to be a git
command, but we were not   able to execute it.
Maybe git-rebase is broken?

我刚刚在 Win7x64 上重新安装了 mSysGit。现在 PATH 包含以下内容:

C:\Program Files (x86)\Git\cmd  
C:\Program Files (x86)\Git\bin  

有什么想法是出了什么问题吗?我在GitHub上搜索,但没有找到任何信息...

你在使用哪个命令行壳?PowerShell?我怀疑你的系统上可能有另一个 sh.exe 被使用,而不是 Git for Windows 随附的那个。如果是这样,请尝试删除 Git\bin 的路径,只使用 Git\cmd。Git\cmd\git.exe 包装器设置了环境,以便 git 程序首先找到随 git 一起提供的实用程序。 - patthoyts
感谢回复。不过,Git\cmd在Git\bin之前。我会尝试移除Git\bin。 - Number8
git.exe 是一个外部程序:C:\Program Files (x86)\Git\cmd\git.exe。在 PowerShell 和 cmd.exe(以及 tcc.exe)中都会得到相同的结果。 - Number8
3个回答

5

我知道这个问题很老了,但我遇到了类似的问题。这可能会帮助其他人。 为了避免与MinGW make出现问题,我不得不将sh.exe重新命名以确保其不在路径中。之后,像git rebase这样的命令就不能正常工作了,会给出与问题中相同的错误:

fatal: 'rebase' appears to be a git
command, but we were not   able to execute it.
Maybe git-rebase is broken?

我一旦恢复了sh.exegit rebase就重新开始工作了。


1

你能找到位于 C:\Program Files (x86)\Git\libexec\git-core\git-rebase 的shell脚本吗?它必须存在才能正常工作。


是的,那个路径(C:\Program Files (x86)\Git\libexec\git-core\git-rebase)存在。'git rebase'(以及相关操作)在一台电脑上可以工作,但在另一台电脑上却不能;我正在尝试找出其中的差异。很奇怪,因为我相当确定我使用了相同的安装程序。 - Number8
我发现我的路径变量中缺少路径`C:\Program Files\Git\bin'的条目。显然,我的路径变量已经达到了它的限制,所以我甚至无法手动输入。最终,我创建了一个单独的变量...将其命名为GITA并将该变量添加到路径条目中。我添加git/bin路径的原因是那里是sh.exe所在的位置。显然,这就是缺失的部分。 - FernandoZ

0

这并不是最终答案(它没有解释为什么git在我的一台电脑上工作而另一台电脑上不工作),但它确实提供了一些可能发生的情况的见解:https://groups.google.com/forum/#!topic/msysgit/VrQLAgQwJHM

我已经安装了便携式版本,将其添加到了我的路径中,现在git又像预期的那样工作了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接