如何获得.git / index的人类可读转储?

时间:2015-02-03 17:55:10

标签: git

简短版

如何获得.git/index

tl; dr version

我有两个索引文件myrepo/.git/indexmyrepo-copy/.git/index根据diff不同("二进制文件...不同")。

我想知道两个索引文件的不同之处。

当然,我可以看一下二进制内容的差异,但我对那些更有意义的内容感兴趣。

因此,我正在寻找一种方法来获取这两个索引文件的人类可读转储,我可以将其与diff进行比较。

3 个答案:

答案 0 :(得分:4)

我会在这些方面提出一些建议:

diff <(GIT_INDEX_FILE=/path/to/index1 git ls-files --stage) <(GIT_INDEX_FILE=/path/to/index2 git ls-files --stage)

正如您已经注意到的那样,您可以添加--debug选项以获取有关时间戳和其他内容的信息......

答案 1 :(得分:2)

好的,在我发布我的问题之后,我了解到以下内容产生了相当全面的索引转储:

% git ls-files --stage --debug

答案 2 :(得分:0)

最容易解决您的问题的方法是将其中一个索引文件中的更改提交到临时分支,例如

git checkout -b temp
git commit

然后复制.git/index上的其他索引文件。您现在可以使用git statusgit diff --staged等来查看差异。