在执行git pull之后,有什么命令可以查看更新的文件中发生了哪些更改?

时间:2014-01-06 15:57:03

标签: git git-pull

执行git pull之后,有什么命令可以查看更新文件中的更改内容?例子会很棒。

6 个答案:

答案 0 :(得分:4)

git pull默认会报告类似

的内容
Updating 9e9a656..bb743dd

git loggit diff的有效输入:

git log -p 9e9a656..bb743dd

git diff 9e9a656..bb743dd

如果您丢失了git pull输出,则可以使用git reflog查看自己的操作:

bb743dd HEAD@{0}: pull origin master: Fast-forward
9e9a656 HEAD@{1}: reset: moving to HEAD^

所以在这种情况下,git log HEAD@{1}也会显示拉动的内容,如果你之间做了任何事情(例如commit)......

1dac876 HEAD@{0}: commit: some stuff
bb743dd HEAD@{1}: pull origin master: Fast-forward
9e9a656 HEAD@{2}: reset: moving to HEAD^

...您可以使用..语法:

git log HEAD@{2}..HEAD@{1}  # or log -p, or diff

答案 1 :(得分:1)

我会使用git log来查看提交消息(和SHA),以及git diff <SHA-commitA> HEAD,这是您在pull之前的最后一次提交。

答案 2 :(得分:1)

git show HEAD~1

将显示上次提交中的更改。

答案 3 :(得分:0)

我更喜欢简单:

git show HEAD^

答案 4 :(得分:0)

[以下答案假定合并不是快进合并,并且您没有要求git pull使用其rebase模式。如果这些假设是错误的,可能git loggit log -pgit diff HEAD@{1} HEAD会显示您想要的内容。]

您可以执行两项不同的操作:查看哪些提交已合并,并查看合并引入的更改。前者使用git log完成(如another answer中所述);后者有点复杂。

通常,git show <commit>为您提供给定提交中引入的内容的差异,但对于合并提交,这会产生减少的“组合差异”。这里的细节并不十分相关......只要说你不会看到合并提交的正常差异,除非你使用欺骗。

与第一个父项相比,查看合并引入的更改差异(以及作为其一部分执行的任何冲突解决)的最简单方法是git diff <commit>^ <commit>^ =第一亲本)。

要获得最详细的信息,您可以查看已合并的各个提交的差异。我建议在图表视图中执行此操作,使整个事情略微变得无形:git log --graph -p

答案 5 :(得分:0)

您想要查看上次拉动中更改的文件。这是

git diff --name-only HEAD@{1}..HEAD

git rev-parse documentation解释。

  

&lt; refname&gt; @{&lt; n &gt; }例如,{{1} }

     

后跟master@{1}的后缀@,括号对中包含序数规范(例如,{1}{15})指定 n -th该参考的先前值。例如,master@{1}是master的前一个值,而master@{5}是master的第五个先前值。此后缀只能在引用名称后立即使用,并且引用必须具有现有日志($GIT_DIR/logs/<refname>)。

运行git pull会移动当前分支。 HEAD就是现在的位置,HEAD@{1}就是拉动之前的位置。

要查看如何文件更改的单字符摘要,请运行

git diff --name-status HEAD@{1}..HEAD

的输出中提供了完整的详细信息
    git diff HEAD@{1}..HEAD