执行git pull之后,有什么命令可以查看更新文件中的更改内容?例子会很棒。
答案 0 :(得分:4)
git pull
默认会报告类似
Updating 9e9a656..bb743dd
是git log
或git 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 log
或git log -p
或git 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