我在一个分支(旧)中提交了test.js的代码更改。现在我创建了新的分支,并在同一个test.js文件中进行了一些代码更改。在做的时候
git diff test.js
显示旧分支更改和新代码更改的代码更改。
是否显示所有代码更改(我在旧版本中提交的更改和新更改)?
答案 0 :(得分:3)
一般来说,git diff
只比较两件事。 (例外情况不适用于此。)你选择哪个两件事,Git给你一套指令,例如:
如果您按照它们,将第一个事物转换为第二个事物。
在这种特殊情况下,您选择了两件事:
git diff test.js
是索引中的test.js
版本,以及工作树中的test.js
版本。这些都不一定在任何分支中(当然,其中一个或两个版本都可以匹配某些其他分支中某些文件的某些版本)。
工作树的简短描述很简单:它是您处理文件的地方。存储在Git中的文件采用仅Git格式,因此要让计算机上的其他程序使用它们,您需要将它们放在可以处理它们的位置。那是工作树。
索引的简短描述是,您可以在Git中构建 next 提交。它从您当前的分支开始匹配当前提交;当你git add
一个文件时,它会将文件从工作树复制到索引中,以便它可以进入 next 提交。
要详细了解Git的索引和工作树是什么和做什么,请参阅Difference between HEAD / Working Tree / Index in Git。
答案 1 :(得分:0)
git diff test.js
会在仅当前分支中显示文件中的更改。