Wypychanie z lokalnego repozytorium do zdalnego hosta GitHub


113

Utworzyłem lokalne repozytorium mojego folderu rozwiązania Visual Studio 2010 przy użyciu interfejsu GUI Git na moim komputerze deweloperskim. Następnie utworzyłem zdalne repozytorium na moim koncie GitHub. Teraz szukam sposobu wypchnięcia mojego lokalnego repozytorium do zdalnego repozytorium.

W SVN mogę po prostu zatwierdzić za pomocą TortoiseSVN i zmiany są wysyłane do zdalnego repozytorium. Nie widzę żadnego takiego narzędzia dostępnego dla Git.

Jak przekazać lokalne repozytorium do zdalnego repozytorium w serwisie GitHub?

Odpowiedzi:


230

Wypychasz repozytorium lokalne do repozytorium zdalnego za pomocą git pushpolecenia po pierwszym ustanowieniu relacji między nimi za pomocą git remote add [alias] [url]polecenia. Jeśli odwiedzisz swoje repozytorium Github, wyświetli się adres URL, którego należy użyć do wypychania. Najpierw wpisz coś takiego:

git remote add origin git@github.com:username/reponame.git

Chyba że zacząłeś od uruchamiania git clonew zdalnym repozytorium, w takim przypadku ten krok został już wykonany za Ciebie.

A potem wpiszesz:

git push origin master

Po pierwszym naciśnięciu możesz po prostu wpisać:

git push

kiedy chcesz zaktualizować zdalne repozytorium w przyszłości.


1
Czy faktycznie piszesz „~ origin ~” czy po prostu „origin”? Najlepiej unikać tyldy, ponieważ to coś znaczy dla Gita.
GoZoner

1
U mnie działa tylko z https: github.com/username/repo.git, nie wiem dlaczego.
eLRuLL

7
Musiałem git pull origin masternajpierw, a potem push
Renaud

10
Dlaczego nie mogą tego wyjaśnić w normalnych dokumentach? To tak, jakby to był sekret lub jakieś gówno. DZIĘKUJĘ CI!
R Claven

1
@RClaven, po utworzeniu nowego repozytorium na Github, jest to jasno wyjaśnione na następnym ekranie w sekcji zatytułowanej „Wypchnij istniejące repozytorium z wiersza poleceń”.
mujimu

3

Rodzaj

git push

z wiersza poleceń w katalogu repozytorium


1
Przypuszczam, że oznaczałoby to użycie gitbash zamiast gitgui?
quakkels

Tak, jeśli korzystasz z systemu bez wbudowanej w pełni funkcjonalnej linii poleceń, to jest coś, o czym należy wspomnieć w pytaniu
Gareth

nie, mam to ... Jestem trochę onieśmielony wierszem poleceń. Przede wszystkim dlatego, że nie używałem go zbyt często. To pomoże to zmienić.
quakkels

Może to być stroma krzywa uczenia się, ale powszechna opinia jest taka, że ​​korzyści znacznie przewyższają wady
Gareth

Dziękuję Ci. Nie chciałem dłużej szukać. IDE ciągle zawiesza się do rozmiaru. Dzięki jeszcze raz.
Eric Leroy

3

Subversion pośrednio ma na zdalne repozytorium związanego z nim przez cały czas. Z drugiej strony Git pozwala na użycie wielu „pilotów”, z których każdy reprezentuje pojedyncze zdalne miejsce, do którego można się pchać lub z którego można pociągnąć.

Musisz dodać pilota do repozytorium GitHub do swojego lokalnego repozytorium, a następnie użyć git push ${remote}lub, git pull ${remote}odpowiednio, wypychać i ściągać - lub odpowiedników GUI.

Pro Git omawia piloty tutaj: http://git-scm.com/book/ch2-5.html

Pomoc GitHub omawia je również w bardziej "zadaniowy" sposób tutaj: http://help.github.com/remotes/

Gdy już połączysz te dwa elementy, będziesz mógł pchać lub ciągnąć gałęzie.


1

To zadziałało dla mojej wersji GIT 1.8.4:

  1. W folderze lokalnego repozytorium kliknij prawym przyciskiem myszy i wybierz opcję „ Git Commit Tool ”.
  2. Tam wybierz pliki, które chcesz załadować, w sekcji „ Nieustalone zmiany ” i kliknij przycisk „ Etap zmieniony ”. (Możesz najpierw kliknąć przycisk „ Skanuj ponownie ”, aby sprawdzić, które pliki zostały zmodyfikowane, a które nie zostały jeszcze przesłane).
  3. Napisz komunikat dotyczący zatwierdzenia i kliknij przycisk „ Zatwierdź ”.
  4. Teraz ponownie kliknij prawym przyciskiem myszy folder i wybierz „ Git Bash ”.
  5. Wpisz: git push origin master i wprowadź swoje poświadczenia. Gotowe.

0

otwórz wiersz polecenia Przejdź do katalogu projektu

wpisz git remote dodaj źródło lokalizacji repozytorium git hub za pomocą .git

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.