git:如何看到推送引起的变化?

时间:2010-02-17 17:32:30

标签: git git-push git-log

我无法弄清楚如何通过'推送'来查看远程存储库中究竟发生了什么变化。 'git log'向我展示了一系列提交,但这些提交发生在我的本地存储库中,并在不同时间被推送;我想知道哪些提交是每个特定'推送'的一部分

2 个答案:

答案 0 :(得分:17)

实际上,您可以从reflog中提取此信息。它不是远程存储库的完整历史记录,而是远程存储库分支副本的历史记录。因此,您不会看到其他人对远程存储库所做的更改。它并不漂亮,但你可以编写一个脚本来简化它。

例如:

$ git reflog show origin/master
ca4f119 refs/remotes/origin/master@{0}: pull --rebase: fast-forward
d303ece refs/remotes/origin/master@{1}: pull --rebase: fast-forward
ce28c26 refs/remotes/origin/master@{2}: pull --rebase: fast-forward
0f71883 refs/remotes/origin/master@{3}: pull --rebase: fast-forward
8c2f0dd refs/remotes/origin/master@{4}: pull --rebase: fast forward
2958d6c refs/remotes/origin/master@{5}: update by push
6e9558c refs/remotes/origin/master@{6}: pull --rebase: fast-forward
8854b35 refs/remotes/origin/master@{7}: pull --rebase: fast-forward
b96f25d refs/remotes/origin/master@{8}: pull --rebase: fast-forward
efb0ab8 refs/remotes/origin/master@{9}: pull --rebase: fast-forward
71c12ca refs/remotes/origin/master@{10}: pull --rebase: fast-forward
d860e59 refs/remotes/origin/master@{11}: update by push
6342dbb refs/remotes/origin/master@{12}: fetch: fast-forward
...

您可以在此处看到我最近的推送从origin/master提升6e9558c2958d6c。要查看提交,您可以使用git log 6e9558c..2958d6c。如,

$ git log --abbrev-commit --pretty=oneline 6e9558c..2958d6c
2958d6c Commit Summary 4
5cbe548 Commit Summary 3
13d007c Commit Summary 2
4f19ac3 Commit Summary 1

如果你有远程存储库的终端访问权限,你可以在那一端做类似的事情,看看它收到的所有推送。

答案 1 :(得分:3)

Git没有跟踪哪些提交是“推”操作的一部分;存储库包含特定的提交序列,或者不包含。 Git如何实现提交无关紧要,一组三个提交是否是一次推送的一部分,或者每个提交都是单独完成的。