如何在提交之前在git中查看文件差异

女生的网名这么多〃 提交于 2020-02-26 04:56:48

这经常发生在我身上:

我在一两天内同时处理了几个相关的更改,当需要提交时,我最终忘记了特定文件中的更改。 (这只是一个个人的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
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!