我注意到,在处理一两张票时,如果我走开,我不确定我在做什么,什么改变了,等等。
是否有一种方法可以在git添加和提交之前查看给定文件所做的更改?
我注意到,在处理一两张票时,如果我走开,我不确定我在做什么,什么改变了,等等。
是否有一种方法可以在git添加和提交之前查看给定文件所做的更改?
当前回答
For me git add -p is the most useful way (and intended I think by git developers?) to review all unstaged changes (it shows the diff for each file), choose a good set of changes that ought to go with a commit, then when you have staged all of those, then use git commit, and repeat for the next commit. Then you can make each commit be a useful or meaningful set of changes even if they took place in various files. I would also suggest creating a new branch for each ticket or similar activity, and switch between them using checkout (perhaps using git stash if you don't want to commit before switching), though if you are doing many quick changes this may be a pain. Don't forget to merge often.
其他回答
For me git add -p is the most useful way (and intended I think by git developers?) to review all unstaged changes (it shows the diff for each file), choose a good set of changes that ought to go with a commit, then when you have staged all of those, then use git commit, and repeat for the next commit. Then you can make each commit be a useful or meaningful set of changes even if they took place in various files. I would also suggest creating a new branch for each ticket or similar activity, and switch between them using checkout (perhaps using git stash if you don't want to commit before switching), though if you are doing many quick changes this may be a pain. Don't forget to merge often.
Git diff文件名
对于某些路径,其他答案将返回一个致命形式的错误:模糊的参数。
在这些情况下,diff需要一个分隔符来区分文件名参数和提交字符串。例如,要回答问题,你需要执行:
$ git diff --cached -- <path-to-file>
这将显示修改后的文件与上次提交之间的更改。
另一方面:
git diff --cached HEAD~3 <path-to-file>
将显示本地版本与三次提交前版本之间的更改。
好吧,我的情况下,当你不想关心文件列表。让他们都看看。
当你已经运行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)'
你也可以使用git友好的文本编辑器。它们显示已修改的行上的颜色,添加的行显示另一种颜色,删除的行显示另一种颜色,等等。
GitHub的Atom 1.0就是一个很好的文本编辑器。