git ls-tree -road在子目录中工作奇怪

时间:2015-04-22 05:32:18

标签: git

说我有这些文件的回购:

aaa.txt
f1/bbb.txt
f1/f2/ccc.txt

如果我的CWD是工作树的顶部,我得到这个结果:

$ git ls-tree -r --name-only $(git write-tree)
aaa.txt
f1/bbb.txt
f1/f2/ccc.txt

$ git ls-tree -rd --name-only $(git write-tree)
f1
f1/f2

如果我的CWD在f1目录中,我得到这个结果:

$ git ls-tree -r --name-only $(git write-tree)
bbb.txt
f2/ccc.txt

$ git ls-tree -rd --name-only $(git write-tree)

我希望git ls-tree -rd --name-only $(git write-tree)返回f2。但结果是空的。我做错了吗?

1 个答案:

答案 0 :(得分:0)

这可能是与旧msysgit 32bits Git For Windows 1.9.5相关联的问题,我在那里重现了同样的问题。

我刚刚使用new msys2 64bits Git For Windows 2.3.5在git bash会话中对其进行了测试,效果非常好。

VonC@voncvb MINGW64 /c/Users/VonC/prog/go/src/github.com/VonC/senvgo (master)
$ git ls-tree -rd --name-only $(git write-tree)
.deps
.deps/godbg
configs
envs
installer
paths
paths/7z
prgs

VonC@voncvb MINGW64 /c/Users/VonC/prog/go/src/github.com/VonC/senvgo (master)
$ cd paths/

VonC@voncvb MINGW64 /c/Users/VonC/prog/go/src/github.com/VonC/senvgo/paths (master)
$ git ls-tree -rd --name-only $(git write-tree)
./
7z