Chciałbym wiedzieć, czy moje lokalne repozytorium jest aktualne (a jeśli nie, najlepiej, chciałbym zobaczyć zmiany).Git: Jak sprawdzić, czy lokalne repo jest aktualne?
Jak mogę to sprawdzić bez robienia git fetch
lub git pull
?
Chciałbym wiedzieć, czy moje lokalne repozytorium jest aktualne (a jeśli nie, najlepiej, chciałbym zobaczyć zmiany).Git: Jak sprawdzić, czy lokalne repo jest aktualne?
Jak mogę to sprawdzić bez robienia git fetch
lub git pull
?
Spróbuj git fetch --dry-run
Instrukcja (git help fetch
) mówi:
--dry-run
Show what would be done, without making any changes.
To niemożliwe. Skąd wiadomo, czy repozytorium jest "aktualne" bez przechodzenia do zdalnego repozytorium, aby sprawdzić, co oznacza "aktualny"?
Proszę potwierdzić, że! Właśnie odpowiedziałeś, co myślisz! Powinieneś być ostrożniejszy, ponieważ nowicjusze będą z nim walczyć! –
@AmanuelNega: To tylko podstawowa logika. Jeśli chcesz wiedzieć, czy twoje lokalne repozytorium znajduje się w tym samym stanie co zdalne repo, musisz znać stan zdalnego repo. Kropka. Jeśli nie znasz stanu zdalnego repo, nie możesz wiedzieć, czy lokalne repozytorium jest w tym samym stanie. Zauważ, że najwyższa głosowana i zaakceptowana odpowiedź używa 'git pull', co OP wyraźnie zabrania w swoim pytaniu. –
Bądź na bieżąco! 'git status -uno' to działa i można również użyć' git show-branch * master', aby zobaczyć status wszystkich głównych gałęzi! Nadal twierdzisz, że to niemożliwe?Możesz zobaczyć status dowolnego oddziału, o ile masz dostęp do pilota! –
Niezupełnie - ale nie widzę, jak boli Cię git fetch
, ponieważ nie spowoduje to zmiany żadnych lokalnych oddziałów.
Musisz uruchomić git fetch
zanim będzie można porównać z lokalnym repozytorium przeciwko plików na zdalnym serwerze.
Ta komenda aktualizuje tylko twoje odległe gałęzie śledzenia i nie ma wpływu na twój obszar roboczy, dopóki nie zadzwonisz pod numer git merge
lub git pull
.
Aby zobaczyć różnicę między lokalnym oddziale i zdalnej gałęzi śledzenia kiedy już pobrane można użyć git diff or git cherry as explained here.
można użyć git status -uno
aby sprawdzić, czy lokalny oddział jest up-to-date z jednego pochodzenia .
Podaje tylko status lokalny, nie sprawdzając w zdalnym oddziale. –
Inną alternatywą jest podgląd statusu zdalnego oddziału użyciu git show-branch remote/branch
go używać jako porównanie można zobaczyć git show-branch *branch
zobaczyć oddział we wszystkich pilotów, jak również repozytorium! sprawdź to odpowiedź dla bardziej https://stackoverflow.com/a/3278427/2711378
Musisz wydać dwa polecenia:
Korzystając
git pull
Jeśli urządzenie gałąź jest aktualna, dostaniesz następujący komunikat:
"Już na czasie."
git remote show origin
Wynik:
HEAD branch: master
Remote branch:
master tracked
Local branch configured for 'git pull':
master merges with remote master
Local ref configured for 'git push':
master pushes to master (local out of date) <-------
Dzięki! Ale to jest trudne zrozumieć z wyniku, które pliki zostały dodane/zmodyfikowane/usunięte. –
Możesz zobaczyć, jakie tagi są aktualizowane i zakres zatwierdzania start..end dla różnych gałęzi. Jeśli to nie wystarczy, zrób to jako poprawne pobranie (nie pull), które da ci właściwą, oddzielną, lokalną kopię pilota, bez wpływu na pracę twojego oddziału. Pociągnięcie spróbuje połączyć te dwa elementy, co nie jest tym, czego potrzebujesz. Przesyłanie danych jest takie samo bez względu na to, czy: - uruchom, czy nie. –