我想检查任何代码更改后,做一个 git pull。目前它只是显示哪些文件发生了更改。我如何看到哪些代码发生了更改?
git pull
git log --name-status -2
将显示在最后两次提交中更改的文件的名称。
git log -p -2
将向您展示更改本身。
在你拉之前,
git fetch git log --name-status origin/master..
将显示要检索的提交内容以及文件名。
因为 git pull只是 git fetch和 git merge的一个快捷方式,所以您可以运行 git fetch从原点获取分支,然后在合并之前显示差异。像这样:
git fetch
git merge
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 所说的那样,使用 fetch和 diff查看更改:
fetch
diff
$ git fetch $ git diff master...origin/master
请注意三重句点,这意味着与共享的父句点和起源/主句点不同(下面标记为 x的提交) :
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
如果你已经有一段时间没有拉了,你想知道最后一次拉带来了什么变化,你可以查阅:
$ 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>