使用命令替换的git命令没有返回任何内容。

3

终端环境: GNU bash, version 4.3.42(4)-release (x86_64-pc-msys)
操作系统: Windows7
版本控制工具: git version 2.6.4.windows.1

如果不使用命令替换,直接执行git命令会返回正确的答案。

$ git write-tree
76cb4719e27c7d77ef396992b3ba90cd98d22fcd

但是当我使用命令替换执行 某些 git 命令时,它不会返回任何内容。
$ echo "`git write-tree`"

$ echo "$(git write-tree)"

但最奇怪的是:只有一些git命令会出现这个问题,例如:git write-treegit rev-parsegit var。而其他git命令,如git log,则可以正常运行。
还有一些环境和我的完全相同,包括操作系统、bash和git。但一切都正常工作。
因此,我想知道是否需要进行某些配置。这件事真的让我感到困惑。

git-write-tree文档中提到:“从概念上讲,git write-tree将当前索引内容同步到一组树文件中。为了使其与当前目录中的实际内容匹配,您需要在执行git write-tree之前进行git update-index阶段。”尝试使用git update-index和git write-tree命令。 - skr
1个回答

0
这个问题在较新版本的Git for Windows中应该已经修复了。
以下是我在Git 2.18中使用bash会话时看到的内容:
vonc@vonca:/mnt/d/git/tests/aa$ echo $(git write-tree)
4b825dc642cb6eb9a060e54bf8d69288fbee4904

vonc@vonca:/mnt/d/git/tests/aa$ echo "$(git write-tree)"
4b825dc642cb6eb9a060e54bf8d69288fbee4904

如果问题仍然是随机的,请尝试使用一个简化的PATH CMD会话进行相同的测试,并从该会话中启动bash。


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