如何看到 git 拉后代码的变化?

我想检查任何代码更改后,做一个 git pull。目前它只是显示哪些文件发生了更改。我如何看到哪些代码发生了更改?

89777 次浏览
git log --name-status -2

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

git log -p -2

将向您展示更改本身。

在你拉之前,

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

将显示要检索的提交内容以及文件名。

因为 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

如果在与 师父不同的分支上运行,当然应该更改上述命令中的分支名称。

你可以检查什么得到改变,而推和拉通过这个..。

git log --stat

在拉之前

在合并之前,你可以像@iblue 所说的那样,使用 fetchdiff查看更改:

$ git fetch
$ git diff master...origin/master

请注意三重句点,这意味着与共享的父句点和起源/主句点不同(下面标记为 x的提交) :

SP---o---o [master]
\
x---x [origin/master]

拉一下就好

Pull 输出中的第一行如下所示:

$ git pull
Updating 37b431a..b2615b4
...

然后你可以简单地做:

$ git diff 37b431a..b2615b4

或者别的什么命令:

$ git log --name-status 37b431a..b2615b4

Later on

如果你已经有一段时间没有拉了,你想知道最后一次拉带来了什么变化,你可以查阅:

$ git reflog | grep -A1 pull | head -2

它将在 pull 之后显示 hash,在 pull 之前显示 hash:

b2615b4 HEAD@{0}: pull : Fast-forward
37b431a HEAD@{1}: checkout: moving from v6.1 to master

然后,您可以对这两个散列执行相同的操作:

git diff 37b431a..b2615b4

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

git diff branch_name@{1}

例如:

git diff master@{1}

为了与后面的源 n 提交进行比较,

git diff branch_name@{n}

比较拉动前后状态的最佳方法(在拉动完成后) :

git diff master^1

或者更笼统地说:

git diff <branch name>^<commits back>