20

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

4

2 回答 2

22

实际上,您可以从 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/master6e9558c2958d6c。要查看提交,您可以使用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

如果您具有远程存储库的终端访问权限,则可以在该端执行类似的操作以查看它收到的所有推送。

于 2010-02-17T18:52:44.267 回答
3

Git 不会跟踪哪些提交是哪个“推送”操作的一部分;存储库要么包含特定的提交序列,要么不包含。对于 Git 来说,提交是如何到达那里并不重要,一组三个提交是否是一次推送的一部分,或者每个提交是在单独的推送中完成的。

于 2010-02-17T17:41:28.543 回答