我试图在两个独立的存储库之间做一个git。单独使用git diff ProjectA ProjectB是可行的,但我必须浏览.git目录中的所有差异。
我尝试过git diff ProjectA ProjectB -- . ':!.git'来排除.git目录,但是我得到了以下错误。
Not a git repository
To compare two paths outside a working tree:
usage: git diff [--no-index] <path> <path>我也尝试过git diff --no-index ProjectA ProjectB -- . ':!.git',但只收到了这样的消息:
usage: git diff --no-index <path> <path>在排除某些目录的同时,如何正确地区分两个不同的存储库?
发布于 2018-04-03 17:56:12
在以这种方式使用git diff时,我不知道排除路径的方法。如果有可能排除路径,那么您已经在问题中使用的神奇签名(:!)可能就是它。更多关于人类词汇魔术签名的信息。
如果有任何帮助,您可以通过添加一个作为另一个的远程来区分每个回购的提交。
cd ProjectA
git remote add ProjectB ../ProjectB
git fetch ProjectB
git diff <commit-or-branch-in-ProjectA> <commit-or-branch-in-projectB>当您完成扩散时,您可以移除遥控器:
git remote remove ProjectB再深入一点,当git diff使用--no-index选项(隐式或显式)运行时,它会触发一个不同的代码路径。比较调用索引并提前返回。据我所知,索引并不称任何解析神奇路径规范的东西。
神奇的路径解析似乎是在上述代码路径返回之后发生的。具体来说,在比较中,有一个调用链树 -> oid -> 改名 -> 路径规范 -> 项目,这似乎就是神奇的路径解析发生的地方。
https://stackoverflow.com/questions/49636305
复制相似问题