在提交git之前,如何查看文件中的更改?

Tim*_* T. 335 git

我注意到,在处理一两张票时,如果我离开,我不确定我的工作是什么,改变了什么,等等.

有没有办法在git add然后git commit之前查看对给定文件所做的更改?

Cas*_*bel 497

你在找git diff.根据您的具体情况,有三种有用的方法可供使用:

# show differences between index and working tree
# that is, changes you haven't staged to commit
git diff [filename]
# show differences between current commit and index
# that is, what you're about to commit
# --staged does exactly the same thing, use what you like
git diff --cached [filename]
# show differences between current commit and working tree
git diff HEAD [filename]
Run Code Online (Sandbox Code Playgroud)

它将在目录上递归工作,如果没有给出路径,它将显示所有更改.

  • 要查看添加文件后的差异(即"git add"之后),请执行"git diff --staged [filename]" (3认同)
  • @Jefromi - 请考虑在您的主要答案中添加“git diff --staged [文件名]”,因为这是更经常需要的情况。 (2认同)

Ree*_*ges 8

对我git add -p来说,最有用的方式(并且我认为我认为是git开发人员?)来审查所有未分级的更改(它显示每个文件的差异),选择一组应该提交的好的更改,然后当你有上演所有这些,然后使用git commit,并重复下一次提交.然后,即使它们发生在各种文件中,您也可以使每个提交成为有用或有意义的更改集.我还建议为每个故障单或类似活动创建一个新分支,并使用它们之间切换checkout(git stash如果你不想在切换之前提交,可能会使用),但如果你做了很多快速更改,这可能会很痛苦.不要忘记经常合并.

  • git add -p 是暂存的组合,查看您可以暂存的更改并以交互方式一一选择它们。有关 git add -p 的更多信息,请参阅[在 Git 中仅提交文件的一部分](/sf/ask/75961371/)。 (2认同)

elm*_*lmt 7

git diff filename


mik*_*iku 5

git diff

显示工作树与索引或树之间的更改,索引与树之间的更改,两棵树之间的更改或磁盘上两个文件之间的更改。