说我有这些文件的回购:
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
。但结果是空的。我做错了吗?
答案 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