我注意到,在处理一两张票时,如果我走开,我不确定我在做什么,什么改变了,等等。
是否有一种方法可以在git添加和提交之前查看给定文件所做的更改?
我注意到,在处理一两张票时,如果我走开,我不确定我在做什么,什么改变了,等等。
是否有一种方法可以在git添加和提交之前查看给定文件所做的更改?
当前回答
请记住,您提交的是更改,而不是文件。
由于这个原因,我很少不使用git add -p(或magit等效)来添加我的更改。
其他回答
对于某些路径,其他答案将返回一个致命形式的错误:模糊的参数。
在这些情况下,diff需要一个分隔符来区分文件名参数和提交字符串。例如,要回答问题,你需要执行:
$ git diff --cached -- <path-to-file>
这将显示修改后的文件与上次提交之间的更改。
另一方面:
git diff --cached HEAD~3 <path-to-file>
将显示本地版本与三次提交前版本之间的更改。
你也可以使用git友好的文本编辑器。它们显示已修改的行上的颜色,添加的行显示另一种颜色,删除的行显示另一种颜色,等等。
GitHub的Atom 1.0就是一个很好的文本编辑器。
git diff
显示工作树和索引或树之间的更改,索引和树之间的更改,两个树之间的更改,或磁盘上两个文件之间的更改。
git diff <path>/filename
路径可以是完整的系统路径,直到文件或 如果您在项目中,也可以粘贴修改后的文件路径 对于路径使用的修改文件:git状态
好吧,我的情况下,当你不想关心文件列表。让他们都看看。
当你已经运行git添加到你的文件列表:
$ git diff --cached $(git diff --cached --name-only)
在git的最新版本中,您可以使用—staging also,这是—cached的同义词。
同样可以用于没有添加文件但没有——cached选项。
$ git diff $(git diff --name-only)
“cached”选项的Git命令别名:
$ git config --global alias.diff-cached '!git diff --cached $(git diff --cached --name-only)'