2011-10-29 13 views

Odpowiedz

46

Spróbuj git fetch --dry-run Instrukcja (git help fetch) mówi:

--dry-run 
Show what would be done, without making any changes. 
+2

Dzięki! Ale to jest trudne zrozumieć z wyniku, które pliki zostały dodane/zmodyfikowane/usunięte. –

+0

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. –

0

To niemożliwe. Skąd wiadomo, czy repozytorium jest "aktualne" bez przechodzenia do zdalnego repozytorium, aby sprawdzić, co oznacza "aktualny"?

+2

Proszę potwierdzić, że! Właśnie odpowiedziałeś, co myślisz! Powinieneś być ostrożniejszy, ponieważ nowicjusze będą z nim walczyć! –

+3

@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. –

+1

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! –

5

Niezupełnie - ale nie widzę, jak boli Cię git fetch, ponieważ nie spowoduje to zmiany żadnych lokalnych oddziałów.

2

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.

5

można użyć git status -uno aby sprawdzić, czy lokalny oddział jest up-to-date z jednego pochodzenia .

+3

Podaje tylko status lokalny, nie sprawdzając w zdalnym oddziale. –

2

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

1

Musisz wydać dwa polecenia:

  1. git sprowadzić pochodzenie
  2. git status
0

Korzystając

git pull 

Jeśli urządzenie gałąź jest aktualna, dostaniesz następujący komunikat:

"Już na czasie."

2
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) <-------