如何在git pull之后看到代码更改?

时间:2012-07-01 17:53:35

标签: git

我想在执行git pull后检查任何代码更改。目前它只是向我显示哪些文件发生了变化。如何查看更改的代码?

5 个答案:

答案 0 :(得分:64)

git log --name-status -2

将显示最近两次提交更改的文件的名称。

git log -p -2

将自己向您展示更改。

在你拉之前,

git fetch
git log --name-status origin/master..

将显示您要检索的提交以及文件名称。

答案 1 :(得分:47)

拉前

您可以在合并前使用fetchdiff查看@iblue所说的更改:

$ git fetch
$ git diff master...origin/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

答案 2 :(得分:16)

由于git pull只是git fetchgit 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 不同的分支上运行,您当然应该更改上述命令中的分支名称。

答案 3 :(得分:4)

你可以通过这个来检查推拉的内容......

git log --stat

答案 4 :(得分:3)

您可以将提取的内容与之前提交的来源进行比较,

git diff branch_name@{1}

例如:

git diff master@{1}

与后面提交的来源进行比较,

git diff branch_name@{n}