Jak zsynchronizować się ze zdalnym repozytorium Git?


94

Rozwidliłem projekt na githubie, dokonałem kilku zmian, na razie dobrze.

W międzyczasie repozytorium, z którego wyszedłem, zmieniło się i chciałbym wprowadzić te zmiany do mojego repozytorium. Jak mogę to zrobić ?

Odpowiedzi:


77

Ogólnie git pullwystarczy, ale nie jestem pewien, jaki układ wybrałeś (lub wybrałeś github).


4
git pull nie zadziała, jeśli nie skonfigurujesz pilota, z którego ma pobierać, i gałęzi, z którą ma się scalić.
Abizern

Zakładam, że zostało to zrobione podczas fazy „tworzenia widelca”. O ile ta informacja nie została wyrzucona, nadal powinna tam być.
Šimon Tóth

użycie git pull z https nie zadziałało, ale z http udało się ... teraz jestem na bieżąco, dzięki!
George Profenza

@GeorgeProfenza To nie jest bezpieczne. Rozważ użyciessh
JVE999,

66

Zakładając, że ich aktualizacje są na serwerze głównym, a ty jesteś w gałęzi, w której chcesz scalić zmiany.

git remote add origin https://github.com/<github-username>/<repo-name>.git
git pull origin master

Zauważ również, że będziesz wtedy chciał odrzucić scalanie z powrotem do swojej kopii repozytorium:

git push origin master

dodawanie działało, wyciąganie nie działało :(, otrzymałem błąd związany z https: błąd: Protokół https nie jest obsługiwany lub wyłączony w libcurl podczas uzyskiwania dostępu do github.com/mrdoob/three.js.git/info/refs krytyczny: żądanie HTTP nie powiodło się Podpowiedzi?
George Profenza

Jaka platforma? Wygląda na to, że jedna z zależności gita nie jest kompletna.
Mark Hibberd

Aby obejść ten problem, możesz również użyć protokołu git zamiast https, np. Git remote set-url git: //github.com/mrdoob/three.js.git - a następnie wypróbuj git pull.
Mark Hibberd

działa na osx. Udało mi się to zdobyć za pomocą git pull github.com/mrdoob/three.js.git master
George Profenza

3
literówka w poleceniach, myślę, że zaczynasz od original, a następnie przełączasz się naorigin
Benjol


5

Musisz dodać oryginalne repozytorium (to, które rozwidliłeś) jako zdalne.

git remote dodaj github (sklonowany adres URL dla oryginalnego repozytorium)

Następnie musisz wprowadzić zmiany do lokalnego repozytorium

git fetch github

Teraz będziesz mieć wszystkie gałęzie oryginalnego repozytorium w swoim lokalnym. Na przykład główną gałęzią będzie github/master. Z tymi gałęziami możesz robić, co chcesz. Połącz je w swoje gałęzie itp


1
Proponuję nazwę upstreampilota.
vidstige

@vidstige Co nie jest wystarczająco opisowe, jeśli masz wiele pilotów do repozytorium. Na przykład często mam pilota na Githubie i pilota na Dropbox.
Abizern

cóż, to oczywiście ma sens. Dlatego wspaniale jest mieć możliwość samodzielnego nazwania ich. Uświadom sobie, że twoja konfiguracja jest prawdopodobnie mniej powszechna niż posiadanie jednego zdalnego o nazwie pochodzenia, który jest twoim własnym rozwidleniem, a następnie masz oryginał, który zwykle nosi nazwę "upstream".
vidstige

-8

W systemie Linux:

git add * 
git commit -a --message "Initial Push All"
git push -u origin --all

4
Jest to przeciwieństwo tego, czego szukał OP.
Ryan
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.