我想检查一下之后的所有代码更改git pull。目前,它只是向我显示哪些文件已更改。如何查看更改的代码?
Answers:
git log --name-status -2
将为您显示最近两次提交更改的文件名。
git log -p -2
会自动向您显示更改。
拉之前
git fetch
git log --name-status origin/master..
将显示您将要检索的提交以及文件名。
您可以按照@iblue用fetch和来检查更改,然后diff再合并:
$ git fetch
$ git diff master...origin/master
请注意三倍周期,这意味着与共享的父对象和原件/母版(x以下标记的提交)存在差异:
SP---o---o [master]
\
x---x [origin/master]
拉取输出的第一行如下所示:
$ git pull
Updating 37b431a..b2615b4
...
然后,您可以简单地执行以下操作:
$ git diff 37b431a..b2615b4
或其他任何命令:
$ git log --name-status 37b431a..b2615b4
如果自从您提出请求以来已经有一段时间了,并且您想知道上次请求带来了哪些更改,则可以使用以下命令进行查找:
$ git reflog | grep -A1 pull | head -2
它将在拉出之后显示哈希,然后在拉出之前显示哈希:
b2615b4 HEAD@{0}: pull : Fast-forward
37b431a HEAD@{1}: checkout: moving from v6.1 to master
然后,您可以使用以下两个哈希执行相同的操作:
git diff 37b431a..b2615b4
因为git pull仅仅是一个快捷方式git fetch,并git merge可以运行git fetch来从原点的分支,然后合并之前表现出的差异。像这样:
git fetch # Load changes from remote server
git diff master origin/master # Show differences
git merge origin/master # Merge remote changes with local changes
如果您在与master不同的分支上运行,那么您当然应该在上面的命令中更改分支名称。
您可以将提取的内容与前一次提交的来源进行比较,
git diff branch_name@{1}
例如:
git diff master@{1}
为了与来源n进行比较,
git diff branch_name@{n}
@{n}语法实际上表示分支/头部的nth先前位置。例如,如果已经有10个提交,因为你做了一个拉最后一次,master@{1}将参考现有位置的master,这是10个提交之前。这就是为什么使用@{n}对拉后检查更改很有用。
您可以通过此按钮检查推拉过程中得到的更改...
git log --stat