是否有可能将同一文件分两次,并比较(差异)两个阶段版本?使用文件myclass.java的示例:
我可以比较分阶段文件版本1和分段文件版本2吗?
谢谢!
发布于 2011-10-06 10:33:29
第二个git add覆盖第一个,但仍然可以得到差异。
# edit edit edit
$ git add myclass.java
# edit some more现在,git diff将向您展示分阶段文件和最后编辑之间的差异。如果您想要在分阶段的文件和最后一次提交之间的差异,您必须执行git diff --staged。
发布于 2011-10-06 11:12:27
Git索引是用于提交文件的位置;有关更多信息,请查看此StackOverflow答案。在对提交文件进行阶段处理时,索引会反映最新的阶段性信息。第二次暂存文件将更改Git索引,以反映工作目录中文件的内容。
但是,通过一些额外的工作,您可以看到文件的内容与每个阶段的内容一样。您可以在每个阶段之后使用git ls-files获得一个文件小泡列表,然后您可以使用diff或其他一些不同工具进行比较。
下面是一个小的示例会话。
$ git init
Initialized empty Git repository in /home/user/tmp/.git/
$ echo "foo" > foo
$ git add foo
$ git ls-files --stage
100644 257cc5642cb1a054f08cc83f2d943e56fd3ebe99 0 foo
$ echo "bar" > foo
$ git add foo
$ git ls-files --stage
100644 5716ca5987cbf97d6bb54920bea6adde242d87e6 0 foo
$ git cat-file blob 257cc56 > foo.257cc56
$ git cat-file blob 5716ca5 > foo.5716ca5
$ diff foo.257cc56 foo.5716ca5
1c1
< foo
---
> bar但是这是大量的工作,需要仔细规划和存储blob哈希值才能完成。
https://stackoverflow.com/questions/7673017
复制相似问题