2009-09-18 9 views
366

Mam projekt sprawdzony lokalnie od github, od tego czasu zdalne repo zmieniło się. Jakie jest prawidłowe polecenie aktualizacji mojej lokalnej kopii przy użyciu najnowszych zmian?Aktualizowanie lokalnego repozytorium ze zmianami z repozytorium Github

+16

Warto zauważyć, że github przygotował zestaw bardzo przydatnych i pomocnych poradników do korzystania z git i github. Uważałem je za nieocenione, kiedy po raz pierwszy zrobiłem przejście do git. https://help.github.com/ –

+18

@MarkEmbling DLA KAŻDEGO pytania jest możliwe dodaj komentarz "RTFM" ... Ale jestem całkiem zadowolony, że ktoś odpowiada na to pytanie. – jm666

Odpowiedz

513

prawdopodobnie:

git pull origin master 
+20

Skarżyło się: "Użytkownik zażądał pobrania z odległego" pochodzenia ", ale nie określił gałęzi . Ponieważ nie jest to domyślny skonfigurowany zdalny dla bieżącej gałęzi, należy określić gałąź w wierszu poleceń." Więc próbowałem "$ git pull origin master" i działało dobrze. –

+6

git pull origin master – Hoto

+0

Usunąłem niektóre pliki i nie przynosi je ponownie, żadnych pomysłów? –

51
git fetch [remotename] 

Należy jednak scalić wszelkie zmiany w lokalnych oddziałach. Jeśli jesteś na oddział, który jest śledzenie zdalnego oddział na Github, następnie

git pull 

najpierw zrobić pobrać, a następnie scalić w śledzonym oddziału

+2

Jeśli używasz metody 'git fetch', będziesz również chciał pobierać znaczniki za pomocą' git fetch -t'. Jeśli jesteś zadowolony ze zmian ('git log HEAD..FETCH_HEAD'), możesz następnie połączyć je z' git merge FETCH_HEAD'. –

56

ten powinien działać dla każdego domyślnego repozytorium:

git pull origin master 

Jeśli domyślny oddział jest inny niż master, trzeba będzie podać nazwę oddziału:

git pull origin my_default_branch_name 
+2

Niezupełnie. fatal: Nie można znaleźć zdalnego wzornika odniesienia –

+1

@ Probestt EJkhout w swoim przypadku repo nie ma gałęzi głównej, a inna gałąź jest ustawiona jako domyślna – Hoto

0

to pytanie jest bardzo ogólne i nie ma kilka założeń, które zrobię, aby nieco go uprościć. Zakładamy, że chcesz zaktualizować gałąź master.

Jeśli nie wprowadziłeś żadnych zmian lokalnie, możesz użyć git pull, aby usunąć wszystkie nowe zatwierdzenia i dodać je do swojego master.

git pull origin master 

Jeśli zostały wprowadzone zmiany, a chcesz uniknąć dodawania nowego scalającej użyć git pull --rebase.

git pull --rebase origin master 

git pull --rebase będzie działać, nawet jeśli nie zostały wprowadzone zmiany i jest prawdopodobnie najlepsza decyzja.

Powiązane problemy