我无法弄清楚如何通过'推送'来查看远程存储库中究竟发生了什么变化。 'git log'向我展示了一系列提交,但这些提交发生在我的本地存储库中,并在不同时间被推送;我想知道哪些提交是每个特定'推送'的一部分
答案 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
提升6e9558c
到2958d6c
。要查看提交,您可以使用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如何实现提交无关紧要,一组三个提交是否是一次推送的一部分,或者每个提交都是单独完成的。