在git工作树(签出副本)中,我想将当前工作复制树与另一个目录(位于外部)区分开来。
就像这样(也使用子目录进行快速比较):
git diff --no-index --stat -- $HOME/project/pink-blue/subdirectory \
$HOME/temp-copy/subdirectory但是现在它显示了在外部路径下添加的文件。
虽然这首先是文档化的行为,但是如果将维护的.gitignore文件应用于忽略它将要处理的任何添加的文件,我会很高兴。
现在,这可能不是git-diff(1)用于--no-index的一个选项。但这是吗?
由于我所有的考验都是如此艰巨,所以我决定先提出这个问题。
发布于 2022-05-25 12:53:32
如果你错过了“你尝试了什么”(或者觉得它很差劲),那么在这里问这个问题,我终于得到了以下的想法:
与其从工作树扩展到其他子目录,不如告诉git工作树在那里呢?
git --work-tree=$HOME/temp-copy diff --stat -- subdirectory 这需要我承诺干净(还是--cached ?)因此,这并不是我所想的100%,但是一个git diff --quiet应该在说谎之前打破它。
它还要求$HOME/temp-copy有一个名为subdirectory的子目录。情况就是这样,这可能很常见。
对于那些我不想被列出的未跟踪的文件来说,这是非常接近的,它们现在在.gitignore中被忽略了,不再出现了。
要列出“未分阶段”的/new文件,也可以:
git --work-tree=$HOME/temp-copy ls-files --others --exclude-standard subdirectoryhttps://stackoverflow.com/questions/72378038
复制相似问题