“git push”似乎被替换为“git remote-Z”

“git push”似乎被替换为“git remote-Z”

我正在运行 Windows 10 64 位,适用于 Windows 的 Git2.20.1. 我通常通过 Visual Studio 使用 git(大部分情况下没有问题)。我唯一一次从命令行使用 git 是当我需要推送标签时。

问题是当我git push在 Git Bash(cmd.exe 上的 BASH 模拟)上输入时,出现以下错误消息:

git: 'remote-Z' is not a git command. See 'git --help'.
The most similar command is
   remote-fd

就像我输入了 一样git remote-Z。据我尝试,除了 之外,任何尾随选项都会导致相同的错误--help,这会在我的浏览器上打开“git-push(1) 手册页”的本地副本。

我该如何git push重新开始工作,甚至解决这个问题?

到目前为止,我重启了系统,重新安装了 Windows 版 Git(最新版本),确保它D:\Program Files\Git\cmdPath系统环境值中(我甚至把它放在了列表的顶部),但没有成功。git remote-Z此时谷歌搜索也没有帮助。

以下是我已检查过的内容:

  • 我检查了配置文件(系统、全局和本地)。它们都不包含任何与 相关的内容alias
  • $ git --exec-path返回D:/Program Files/Git/mingw64/libexec/git-core。该目录充满了 git 可执行文件,我确定git-push.exe它在那里。
  • 最让我困惑的是,当我cd进入本地存储库并"D:\Program Files\Git\mingw64\libexec\git-core\git-push.exe"直接运行时,会出现相同的错误消息git: 'remote-Z' is not a git command.。我确保重新安装了整个可执行文件,但问题仍然存在。
  • 但是,当我git push在 git 存储库之外输入时,会出现此消息:fatal: not a git repository (or any of the parent directories): .git- 好像命令正常工作。
  • 我使用的存储库是由 Visual Studio 2015 创建的。
  • 本地存储库的路径不包含多字节字符,但远程源(位于我公司的网络共享上)的路径包含多字节字符。这有关系吗?

答案1

这是在您的系统上的一个 Git 存储库中还是在所有 Git 存储库中?

我的感觉是,不知何故,您在单个存储库上设置了一个搞砸的遥控器,现在remote-Z(或以某种方式触发这些字符的某个东西)位于您正在努力的特定存储库的配置中。这是基于您在此处所说的内容:

“但是,当我git push在 git 存储库之外输入内容时,会出现以下消息:fatal: not a git repository (or any of the parent directories): .git - as if the command is working normally.

如果您没有在存储库之外收到该消息,则表明该存储库的特定 Git 配置存在问题。

运行以下命令检查设置了哪些遥控器:git remote -v。有关与遥控器交互的更多详细信息可以在这里找到。您还可以手动检查项目根目录config中的文件,因为它基本上只是一个文本文件。在 macOS 和 Linux 上,它位于其中,因此请在 Windows 设置中的类似位置查找某些内容;它应该会显示一些有用的信息。.git.git/config

答案2

先前的评论让我找到了答案。在每个存储库的配置文件中,[remote "origin"]设置如下:

[remote "origin"]
    url = Z:///path\\to\\MyRepo.git

更改url

    url = Z:/path/to/MyRepo.git

或者

    url = Z:\\path\\to\\MyRepo.git

使命令行和 Visual Studio 中的所有内容都恢复正常工作。(Visual Studio 自动将反斜杠加倍。)

我记得我曾经努力在共享网络驱动器上创建远程存储库,并在某处读到驱动器号后需要三个正斜杠。这让事情在当时得以顺利进行,所以我配置了全部我的本地存储库就是这样的。不确定是什么改变了 git 命令行上的行为。

我觉得在解析上面的斜杠混合时,驱动器号以Z某种方式与其前面的 融合在一起[remote "origin"],导致remote-Z,并神秘地删除了push我输入的内容。不知道解析结果为什么会变成这样。

相关内容