【发布时间】:2011-01-17 23:37:43
【问题描述】:
我不太清楚如何通过“推送”查看远程存储库中到底发生了什么变化。 “git log”向我显示了一系列提交,但这些提交发生在我的本地存储库中,并且在不同时间被推送;我想知道哪些提交是每个特定“推送”的一部分
【问题讨论】:
我不太清楚如何通过“推送”查看远程存储库中到底发生了什么变化。 “git log”向我显示了一系列提交,但这些提交发生在我的本地存储库中,并且在不同时间被推送;我想知道哪些提交是每个特定“推送”的一部分
【问题讨论】:
实际上,您可以从 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
如果您有远程存储库的终端访问权限,您可以在该端执行类似的操作以查看它收到的所有推送。
【讨论】:
git reflog show origin/master --date=iso?
Git 不会跟踪哪些提交是哪些“推送”操作的一部分;存储库要么包含特定的提交序列,要么不包含。对于 Git 来说,提交是如何到达那里并不重要,一组三个提交是一次推送的一部分,还是每个提交都是在单独的推送中完成的。
【讨论】: