2012-01-09 13 views
15

git içinde belirli bir uzaktan kumandaya ya da tüm push komutlarının listesini nasıl alabilirim?Git ile tüm Push'lerin bir listesini bulun

Durumum için, bu uzaktan veya yerel depoda çalıştırmak için sorun olur.

bonus puan için

, nasıl bütün başarılıpush komutların listesini getirir misin?

cevap

15

Bu yöntem yalnızca size başarılı basmalara verecektir, ama yine de sizin için yararlı olabilir:

Eğer uzaktan izleme dallarından birine karşılık gelir ancak daha uzak bir dalına itmek

ve bu itme başarılı, uzaktan izleme dalı güncellenecek. Bir depodan klonlandığınız varsayılan durumda, bu genellikle uzaktan origin'daki master'a yapılan başarılı itmelerin uzaktan izleme dalını origin/master güncelleştireceği anlamına gelir. origin/master değişiklikler reflog kaydedilir, böylece başarılı basmalara bulabilirsiniz:

git reflog show origin/master 

Örneğin benim havuzlarından birinde, şunu görürsünüz: Örneğin

17f2303 refs/remotes/origin/[email protected]{0}: fetch origin: fast-forward 
dd7e0ac refs/remotes/origin/[email protected]{1}: fetch origin: fast-forward 
1788ffe refs/remotes/origin/[email protected]{2}: fetch origin: fast-forward 
9763bbc refs/remotes/origin/[email protected]{3}: fetch origin: fast-forward 
058d0d6 refs/remotes/origin/[email protected]{4}: fetch origin: fast-forward 
921f0f1 refs/remotes/origin/[email protected]{5}: fetch origin: fast-forward 
8483afd refs/remotes/origin/[email protected]{6}: update by push 
18d527f refs/remotes/origin/[email protected]{7}: update by push 
1a0fc4a refs/remotes/origin/[email protected]{8}: fetch origin: fast-forward 
b19afc6 refs/remotes/origin/[email protected]{9}: fetch origin: fast-forward 
9253285 refs/remotes/origin/[email protected]{10}: fetch origin: fast-forward 
dfa664f refs/remotes/origin/[email protected]{11}: fetch origin: fast-forward 
30ee7c0 refs/remotes/origin/[email protected]{12}: update by push 
ad11e76 refs/remotes/origin/[email protected]{13}: fetch origin: fast-forward 
c337975 refs/remotes/origin/[email protected]{14}: update by push 
1ff03bd refs/remotes/origin/[email protected]{15}: update by push 
7fb1c8d refs/remotes/origin/[email protected]{16}: fetch origin: fast-forward 
452c8fa refs/remotes/origin/[email protected]{17}: fetch origin: fast-forward 
6c79a16 refs/remotes/origin/[email protected]{18}: update by push 
11d9c4a refs/remotes/origin/[email protected]{19}: fetch origin: fast-forward 

, seni Bunu en son basamağımın origin/master'u 18d527f'dan 8483afd'a güncellediğini söyleyebilirim.

Buna güvenmeniz gerekiyorsa, varsayılan süreden sonra (90 günlük IIRC) yeniden doldurmanın sonlandırılmasını durdurmanız gerekir.

+0

Mükemmel! Teşekkür ederim. FWIW, reflog'um son 9 aydaki girişleri gösteriyor ve ilk kurulduğundan beri davranışını etkileyecek hiçbir şey yapmadım. – Clayton

+2

@Clayton: Muhtemelen, sadece gc - auto'yu henüz tetiklemediğiniz anlamına gelir; Varsayılan 90 günden daha eski reflog'lar geçer. İşlerin bu şekilde kalmasını istiyorsanız 'gc.reflogExpire'ı' asla '(ya da daha büyük bir şey) olarak ayarlayın. – Cascabel

+0

Git öğrenenler için: tüm yerel reposlarınız için hiçbir zaman sona ermeyecek şekilde yeniden oluşturmayı ayarlamak için: 'git config --global gc.reflogExpire komut satırında asla durmaz. –

İlgili konular