这经常发生在我身上:
我在一两天内同时处理了几个相关的更改,当需要提交时,我最终忘记了特定文件中的更改。 (这只是一个个人的git repo,所以我可以在提交中有多个更新。)
有没有办法预览我的本地文件(即将签入)和该文件的最后一次提交之间的更改?
就像是:
git diff --changed /myfile.txt
它会打印出如下内容:
line 23
(last commit): var = 2+2
(current): var = myfunction() + 2
line 149
(last commit): return var
(current): return var / 7
通过这种方式,我可以快速查看自上次签入以来我在该文件中所做的工作。
#1楼
如果你想看看你还没有git add
ed:
git diff myfile.txt
或者如果您想查看已添加的更改
git diff --cached myfile.txt
#2楼
你为git commit
尝试了-v
(或--verbose
)选项吗? 它在消息编辑器中添加了提交的差异。
#3楼
我认为这是保证GUI的完美用例。 - 虽然我完全理解它在命令行中也可以很好地实现。
就个人而言,我的每一次承诺,我都是从git-gui做的。 如果有意义的话,我可以在其中使用单独的hunks / lines进行多次原子提交。
Gut Gui可以在格式良好的彩色界面中查看差异,相当清淡。 看起来这也是你应该结账的东西。
#4楼
git diff HEAD file
将显示您在上次提交时添加到工作树中的更改。 将显示所有更改(暂存或未暂存)。
#5楼
要检查本地差异:
git diff myfile.txt
或者您可以使用diff工具(如果您想要还原某些更改):
git difftool myfile.txt
要更有效地使用git difftool
,请安装并使用您喜欢的GUI工具,如Meld,DiffMerge或OpenDiff。
注意:您也可以使用.
(而不是文件名)来查看当前目录的变化。
为了检查每行的更改,请使用: git blame
,它将显示在哪个提交中提交的行。
要在提交之前查看实际文件(其中master
是您的分支),请运行:
git show master:path/my_file
来源:oschina
链接:https://my.oschina.net/u/3797416/blog/3164373