Metoda ta będzie tylko daje udanych naciska, ale nadal może być przydatna:
Po wciśnięciu do oddziału w pilocie, który odpowiada jednemu z odległych śledzenie oddziałów i że Push zakończy się pomyślnie, gałąź zdalnego śledzenia zostanie zaktualizowana. W domyślnym przypadku sklonowania z repozytorium zazwyczaj oznacza to, że pomyślne przekazanie do master
w zdalnym origin
zaktualizuje gałąź zdalnego śledzenia origin/master
. Zmiany origin/master
są rejestrowane w reflog, więc można znaleźć udanych naciska z:
git reflog show origin/master
Na przykład, w jednym z moich repozytoriów, zobaczysz:
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
na przykład, mogę powiedzieć, że mój najnowszy push został zaktualizowany origin/master
z 18d527f
do 8483afd
.
Jeśli chcesz na tym polegać, musisz zatrzymać reflog przed upływem domyślnego czasu (90 dni IIRC).
Idealnie! Dziękuję Ci. FWIW, mój reflog pokazuje wpisy z ostatnich 9 miesięcy i nie zrobiłem nic, co wpłynęłoby na jego zachowanie od czasu pierwszej instalacji. – Clayton
@Clayton: To prawdopodobnie oznacza, że jeszcze nie uruchomiłeś wyzwalacza 'gc --auto'; to wygaśnie reflogi starsze niż domyślne 90 dni. Po prostu ustaw 'gc.reflogExpire' na' never' (lub coś większego), jeśli chcesz, aby tak pozostało. – Cascabel
Dla uczących się git: aby ustawić reflog, aby nigdy nie wygasał dla wszystkich lokalnych repozytoriów: 'git config --global gc.reflogExpire never' w linii poleceń. –