2010-02-17 37 views
12

我不能完全弄清楚如何通過'推'來查看遠程存儲庫中究竟發生了什麼變化。 'git log'向我顯示了一系列提交,但這些提交發生在我的本地存儲庫中,並在不同的時間被推送;我想知道哪些提交是每個特定「推」操作的一部分git:如何查看推送引起的更改?

回答

14

其實,你可以從reflog中釣魚這些信息。這不是遠程存儲庫的完整歷史記錄,而是遠程存儲庫分支副本的歷史記錄。因此,您不會看到其他人對遠程存儲庫所做的更改。這不太好,但你可以編寫一個腳本使其更容易。

例如:

$ git reflog show origin/master 
ca4f119 refs/remotes/origin/[email protected]{0}: pull --rebase: fast-forward 
d303ece refs/remotes/origin/[email protected]{1}: pull --rebase: fast-forward 
ce28c26 refs/remotes/origin/[email protected]{2}: pull --rebase: fast-forward 
0f71883 refs/remotes/origin/[email protected]{3}: pull --rebase: fast-forward 
8c2f0dd refs/remotes/origin/[email protected]{4}: pull --rebase: fast forward 
2958d6c refs/remotes/origin/[email protected]{5}: update by push 
6e9558c refs/remotes/origin/[email protected]{6}: pull --rebase: fast-forward 
8854b35 refs/remotes/origin/[email protected]{7}: pull --rebase: fast-forward 
b96f25d refs/remotes/origin/[email protected]{8}: pull --rebase: fast-forward 
efb0ab8 refs/remotes/origin/[email protected]{9}: pull --rebase: fast-forward 
71c12ca refs/remotes/origin/[email protected]{10}: pull --rebase: fast-forward 
d860e59 refs/remotes/origin/[email protected]{11}: update by push 
6342dbb refs/remotes/origin/[email protected]{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 

如果你有到遠程倉庫終端接入,你可以做爲此類似的東西,看看所有收到的推動的。

+2

是否有可能獲得日誌與時間戳? – user

+0

'git reflog --date = iso'信用:https://stackoverflow.com/a/17369548/2234009 –

3

Git不會跟蹤哪些提交是「推」操作的一部分;存儲庫中包含一定的提交順序,否則不提供。對Git來說,提交是如何實現的並不重要,一組三次提交是否是一次推送的一部分,或者每次都是單獨完成的。

+1

這實際上並不正確 - reflog會記住每個分支提示的所有更改。推送多次提交將顯示爲reflog中的單個更改。請參閱下面的答案。 –

+0

確實如此,但reflog實際上並不是存儲庫的一部分。尤其是,如果沒有直接的資源庫訪問權限(例如,您無法在Github上查看資源庫的引用日誌),則無法查看遠程reflog。 –

+0

確實,但Github通過他們的API公開了類似的東西:https://objectpartners.com/2014/02/11/recovering-a-commit-from-githubs-reflog/ –