Aktualizowanie lokalnego repozytorium za pomocą zmian z repozytorium GitHub
567
Mam projekt sprawdzony lokalnie z GitHub i od tego czasu w zdalnym repozytorium wprowadzono zmiany. Jakie jest prawidłowe polecenie, aby zaktualizować moją kopię lokalną o najnowsze zmiany?
Warto zauważyć, że github opracował zestaw bardzo pouczających i pomocnych przewodników dotyczących korzystania z git i github. Znalazłem je bezcenne, kiedy po raz pierwszy przeprowadziłem się do git. help.github.com
Skarżył się: „Poprosiłeś o pobranie ze zdalnego„ źródła ”, ale nie określiłeś gałęzi. Ponieważ nie jest to domyślnie skonfigurowany pilot dla bieżącej gałęzi, musisz podać gałąź w wierszu poleceń.” Próbowałem więc „$ git pull origin master” i zadziałało dobrze.
Juan Lanus
8
git pull origin master
Andrzej Rehmann
1
Usunąłem niektóre pliki i to już nie przynosi, jakiś pomysł?
Wodnik Moc
1
czy wykonujemy polecenie git przed uruchomieniem tego? za każdym razem, gdy uruchamiam to polecenie, kończę na 18347213846 zmodyfikowanych plikach, których nawet nie dotknąłem !!!
Orkun Ozen,
5
Właśnie dowiedziałem się na własnej skórze, że wyciągnięcie nowej gałęzi zdalnego repozytorium nie tworzy gałęzi o tej nazwie lokalnie, ale zamiast tego przyciąga tę gałąź zdalną do dowolnej gałęzi lokalnej, która zostanie sprawdzona. Nie jestem pewien, jak cofnąć ten brak porzucania i ponownego klonowania repozytorium. W każdym razie wydaje się, że gałąź lokalna jest niezależna od gałęzi zdalnej i przed wyciągnięciem należy zawsze upewnić się, że znajdujesz się w zamierzonej gałęzi lokalnej.
Joe Lapp,
87
Powinno to działać dla każdego domyślnego repozytorium:
git pull origin master
Jeśli domyślna gałąź jest inna niż master, musisz podać nazwę gałęzi:
Jeśli korzystasz z tej git fetchmetody, możesz także pobrać tagi git fetch -t. Jeśli jesteś zadowolony ze zmian ( git log HEAD..FETCH_HEAD), możesz je następnie połączyć git merge FETCH_HEAD.
Brad Grissom
16
To pytanie jest bardzo ogólne i mam kilka założeń, aby je nieco uprościć. Zakładamy, że chcesz zaktualizować swój masteroddział.
Jeśli nie wprowadziłeś żadnych zmian lokalnie, możesz użyć, git pullaby obniżyć wszelkie nowe zatwierdzenia i dodać je do swojego master.
git pull origin master
Jeśli dokonałeś zmian i chcesz uniknąć dodawania nowego zatwierdzenia scalania, użyj git pull --rebase.
git pull --rebase origin master
git pull --rebase będzie działać, nawet jeśli nie dokonałeś zmian i jest to prawdopodobnie twoje najlepsze połączenie.
Rebase i niebezpieczeństwa związane z rebase: atlassian.com/git/tutorials/rewriting-history/git-rebase . Paragrafy 2 i 3 „Zrozumienia niebezpieczeństw związanych z rebase” naprawdę sprawiają, że tęsknię za zestawem poleceń SVN.
WillC
9
W przypadku już ustawionego wzorca początkowego wystarczy użyć poniższego polecenia -
Odpowiedzi:
Prawdopodobnie:
źródło
Powinno to działać dla każdego domyślnego repozytorium:
Jeśli domyślna gałąź jest inna niż
master
, musisz podać nazwę gałęzi:źródło
Konieczne będzie jednak scalenie wszelkich zmian w lokalnych oddziałach. Jeśli jesteś w gałęzi, która śledzi zdalną gałąź w Github, to
najpierw pobierze, a następnie połączy się w śledzonej gałęzi
źródło
git fetch
metody, możesz także pobrać tagigit fetch -t
. Jeśli jesteś zadowolony ze zmian (git log HEAD..FETCH_HEAD
), możesz je następnie połączyćgit merge FETCH_HEAD
.To pytanie jest bardzo ogólne i mam kilka założeń, aby je nieco uprościć. Zakładamy, że chcesz zaktualizować swój
master
oddział.Jeśli nie wprowadziłeś żadnych zmian lokalnie, możesz użyć,
git pull
aby obniżyć wszelkie nowe zatwierdzenia i dodać je do swojegomaster
.Jeśli dokonałeś zmian i chcesz uniknąć dodawania nowego zatwierdzenia scalania, użyj
git pull --rebase
.git pull --rebase
będzie działać, nawet jeśli nie dokonałeś zmian i jest to prawdopodobnie twoje najlepsze połączenie.źródło
W przypadku już ustawionego wzorca początkowego wystarczy użyć poniższego polecenia -
źródło