Wepchnij istniejący projekt do Github

224

Mam folder ze źródłami projektu. Jak mogę wypchnąć ten projekt do repozytorium Github?

Próbowałem wykonać następujące kroki:

  1. Utworzyłem puste repozytorium na GitHub.
  2. Uruchamiam git-bash i wpisuję git init, więc w katalogu głównym projektu pojawił się .gitfolder.
  3. Dodałem kilka plików do kontroli wersji za pomocą git add sourcesFolderName
  4. Za pomocą zatwierdziłem pliki dodane w poprzednim kroku git commit -m "initial commit"
  5. Podałem zdalne repozytorium za pomocą git remote add MyProject <url>
  6. Wreszcie git push, ale nic nie jest przekazywane do zdalnego repo ... (brak błędu autoryzacji)

Jak mogę wypchnąć istniejące źródła do nowo utworzonego repozytorium github?

MyTitle
źródło
4
Jaka była dokładnie wydajność git push?
1615903
1
@ user1615903 Jestem pewien, że mam złą sekwencję kroków. Myślę, że potrzebuję czegoś takiego git clone. Nie pamiętam danych wyjściowych z git push, ale myślę, że to nie ma znaczenia. Ponieważ problem w innym miejscu
MyTitle
Zrobiłeś git push MyProject master?
Felix Kling
Ten post na blogu może pomóc każdemu, kto chce wykonać to zadanie. Wszystkie kroki są opisane w prosty i szczegółowy sposób. samranga.blogspot.com/2015/07/…
Samitha Chathuranga
1
Mała rada, spróbuj użyć aplikacji SourceTree. Interfejs użytkownika jest bardzo ładny.
Mohammad Fareed

Odpowiedzi:

340
git init
git add .
git commit -m "Initial commit"
git remote add origin <project url>
git push -f origin master

-fOpcja na git pushsiłach push. Jeśli go nie użyjesz, zobaczysz taki błąd:

To [email protected]:roseperrone/project.git
 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to '[email protected]:roseperrone/project.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first merge the remote changes (e.g.,
hint: 'git pull') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
Rose Perrone
źródło
5
To rozwiązało mój problem, ale nie mogłem wykonać polecenia 4 git remote add origin <project url>mówiąc command syntax not correct. Zignorowałem to i zadziałało
Khalil Khalaf,
4
Na marginesie, jeśli nie chcesz nigdy korzystać ze strony GitHub, możesz dodać to po trzecim kroku: curl -u 'USER' https://api.github.com/user/repos -d '{"name":"REPO"}'zastępując USER twoją nazwą użytkownika i REPO nazwą tworzonego repozytorium.
MD XF
1
Myślę też, że nie możesz już tego zrobić git add ., powinieneś to zmienić na cat "# reponamehere" >README.mdi wtedy git add README.md. Tak mówi dokumentacja GitHub
MD XF
2
Wierzę, że -fflaga wymusi zniknięcie odległej historii? Wydaje się niebezpiecznym operatorem.
van abel
112

Mniej technicznie

Moja odpowiedź nie jest inna, ale dodaję więcej informacji, ponieważ te, które są nowe, mogłyby skorzystać z uzupełnienia brakujących informacji.

Po utworzeniu repo na github mają instrukcje. Możesz śledzić te. Ale oto kilka dodatkowych wskazówek, ponieważ wiem, jak frustrujące jest rozpoczęcie pracy z git.

Powiedzmy, że już rozpocząłeś projekt lokalnie. Ile masz, nie ma znaczenia. Ale udawajmy, że masz projekt php. Załóżmy, że masz plik index.php, contact.php i folder zasobów z obrazami, css i czcionkami. Możesz to zrobić w ten sposób (łatwo), ale istnieje wiele opcji:

opcja 1

Zaloguj się do swojego konta github i utwórz repo.

wprowadź opis zdjęcia tutaj

Na poniższym ekranie możesz skopiować go tam, gdzie jest potrzebny, klikając przycisk (prawa strona ekranu), aby „sklonować na pulpicie”.

wprowadź opis zdjęcia tutaj

Możesz (lub zrobić to w inny sposób), a następnie skopiować zawartość z istniejącego projektu do nowego repozytorium. Korzystając z aplikacji github, możesz po prostu zatwierdzić stamtąd za pomocą GUI (oznacza to, że wystarczy kliknąć przyciski w aplikacji). Oczywiście wpisujesz swoje notatki do zatwierdzenia.

Opcja 2

  • Utwórz repo na github, jak wspomniano powyżej.
  • Na komputerze przejdź do katalogu za pomocą terminala. za pomocą wiersza poleceń linuxa zapisujesz cd w katalogu. Następnie uruchom następujące polecenia, aby „połączyć” istniejący projekt z repozytorium na github. (Zakłada się, że utworzyłeś swoje repo na github i jest ono obecnie puste)

najpierw zrób to, aby zainicjować git (kontrola wersji).

git init

następnie zrób to, aby dodać wszystkie pliki do „monitorowania”. Jeśli masz pliki, które chcesz zignorować, musisz dodać, .gitignoreale dla uproszczenia, skorzystaj z tego przykładu, aby się nauczyć.

git add .

Następnie zatwierdzasz i dodajesz notatkę pomiędzy ""podobnym „pierwszym zatwierdzeniem” itp.

 git commit -m "Initial Commit"

Teraz tutaj dodajesz swoje istniejące repozytorium

git remote add github <project url>

Ale nie należy pisać dosłownie <project url>, ale adres URL własnego projektu. Jak to zdobyć? Przejdź do linku, na którym znajduje się Twoje repo na github, a następnie skopiuj link. W moim przypadku jednym z moich repozytoriów jest https://github.com/JGallardo/urbanhistorical, więc mój wynikowy adres URL tej komendy po prostu doda .git . Tak więc tutaj będzie

git remote add github https://github.com/JGallardo/urbanhistorical.git

Sprawdź, czy zadziałało

git remote -v

Powinieneś zobaczyć, z czym powiązane jest Twoje repo.

wprowadź opis zdjęcia tutaj

Następnie możesz przekazać zmiany do github

git push github master

lub

git push origin master

Jeśli nadal pojawia się błąd, możesz go wymusić -f. Ale jeśli pracujesz w środowisku zespołowym, uważaj, aby nie zmuszać, bo możesz stworzyć więcej problemów.

git push -f origin master
JGallardo
źródło
3
Twoje jest najlepszym wytłumaczeniem. Dla innych, którzy to czytają: najpierw utworzyłem moje repozytorium w github, aby nie pozwalało mi to robić. Musiałem> github pull <project url>, a następnie pchnąć github. Potem wszystko było dobrze.
philologon
1
Dziękuję bardzo za to! Opcja 1 uratowała mi życie po tym, jak wszystkie inne opcje zawiodły! : D
Sara Inés Calderón
2
Świetne wyjaśnienie! Dodałbym jednak następujące wiersze: git remote add origin <url projektu>, a następnie git push -f origin master. Bez opcji -f wystąpi błąd
Javiar Sandra
1
dodaj opcję -f do ostatniego polecenia, w ten sposób twoja odpowiedź będzie najlepsza
Jacobo Koenig,
1
To naprawdę pomogło! Przypadkowo zainicjowałem repozytorium github przy pomocy README, a potem nie zadziałało. Zrobiłem to ponownie z pustym repozytorium i zadziałało.
Verena Haunschmid
36

będziesz musiał określić, który oddział, a który zdalny podczas wypychania:

➤ git init ./
➤ git add Readme.md
➤ git commit -m "Initial Commit"
➤ git remote add github <project url>
➤ git push github master

Będzie działać zgodnie z oczekiwaniami.

Możesz to ustawić domyślnie, wykonując:

➤ git branch -u github/master master

który pozwoli ci zrobić git pushod master bez określania zdalnego lub oddziału.

brice
źródło
1
Poprawny. Możesz również pominąć /masterczęść, ponieważ jest zbędna.
Gabriele Petronella,
1
„git add Readme.md” jest niepoprawny. Jeśli już istniał, nie trzeba go dodawać. Jeśli nie istnieje, polecenie nie powiedzie się. Tak czy inaczej, to nie jest poprawne.
Mitch
1
@Mitch To nie jest tajemna magiczna inwokacja, która nagle sprawi, że komputer zrobi to, co chcesz. To przykład dawania ludziom i wyobrażenia o tym, co powinni robić. Oczekuję, że ludzie zrozumieją polecenia, które wpisują na swoim komputerze.
Brice
9

Jeśli korzystasz z komputera Mac (i prawdopodobnie działa to tak samo na komputerze PC), oto bardzo prosty sposób na zrobienie tego. O dziwo, wyglądałem wysoko i nisko dla tego prostego procesu i nigdy go nie znalazłem.

  • Nie rób nic na Github (oprócz posiadania konta i niewykorzystania wszystkich dostępnych repozytoriów).
  • Pobierz GitHub na Maca i zainstaluj. Przejdź do konfiguracji konta itp. NIE twórz żadnych repozytoriów dla istniejącego projektu.
  • „Dodaj nowe lokalne repozytorium” w repozytoriach.
  • Wybierz istniejący folder. Zapyta, czy chcesz to zrobić, powiedz tak.
  • Po zakończeniu zobaczysz listę wszystkich plików itp. Zatwierdź je.
  • Przejdź do repozytoriów i opublikuj (utworzy to dla ciebie nowe repozytorium w GitHub, jeśli poprawnie skonfigurujesz konto).
  • Przejdź do repozytoriów i wypychaj (zobaczysz albo „nic do wypchnięcia”, albo wypchnie twoje pliki / zmiany do nowo utworzonego repozytorium).
    • Ciekawe, dlaczego nigdzie indziej nie można znaleźć tego prostego procesu.

Wiem, że nie jest zalecane używanie folderu projektu jako folderu repo. Robię to cały czas, zawsze działa, sprawia, że ​​jest to proste i nigdy nie mam z tym żadnych problemów.

Tcoz
źródło
Wydaje mi się, że jeśli aplikacja GitHub pozwala użytkownikowi zrobić to w ten sposób, to musi być w porządku.
johnnieb
7

W podsumowaniu;

git init
git status
git add "*"
git commit -m "Comment you want"
git remote add origin  https://link
git push  -u origin master

Chciałbym udostępnić Ci źródło, abyś mógł łatwiej poznać Git.

https://try.github.io/levels/1/challenges/1

shaurya uppal
źródło
5

Będę śledzić poprzedni komentarz Rose P. Znalezienie rozwiązania zajęło mi dużo czasu, więc ponownie opublikowałem (mam nadzieję, że po angielsku) to, co dla mnie zadziałało ...

krok 1: Utwórz nowe repozytorium na Github.com (pomiń, jeśli już je masz)

krok 2: Zamknij XCode ... niepotrzebne

krok 3: Otwórz nowe okno terminala (tak, musisz użyć terminala ... Próbowałem na wszystkie inne sposoby ... nic nie działało)

krok 4: Za pomocą polecenia cd znajdź lokalizację swojego folderu w projekcie (projekt, który chcesz dodać do istniejącego lub nowego repozytorium)

krok 5: wpisz git init , otrzymasz coś takiego. Ponownie zainicjowano istniejące repozytorium Git w / {bieżącym katalogu}

krok 6: wpisz git add. po tym kroku nic się nie dzieje, ale wpisz go i przejdź do następnego kroku.

krok 7: wpisz git commit -m „Wstępne zatwierdzenie” otrzymasz następujące: # W gałęzi master nic do zatwierdzenia, wyczyszczenie katalogu roboczego

lub

wyjaśnienie dotyczące konfiguracji, a następnie listę plików, które uległy zmianie.

krok 8: wpisz git remote add origin {URL projektu} Adres URL projektu można znaleźć na Github.com. To jest klonowany adres HTTPS ... powinieneś być w stanie po prostu skopiować i wkleić do okna terminala. Jeśli system powie ci, że pochodzenie już istnieje, utwórz inną nazwę lub użyj nazwy swojego projektu (coś innego)

krok 9: przejdź do aplikacji GitHub na komputerze Mac i kliknij przycisk „Synchronizuj oddział” (nawet jeśli nie ma żadnych oczekujących zmian). Myślę, że zajmie to trochę czasu, ale jeśli wrócisz do lokalnego folderu repozytorium, powinieneś zobaczyć swój nowy projekt. Musiałem ponownie utworzyć folder nadrzędny, ale to tylko kwestia przeniesienia plików. Wejdź na GitHub.com i odśwież przeglądarkę, a nowe pliki również powinny tam być.

Mam nadzieję że to pomogło.

Carlos
źródło
5
Follow below gitbash commands to push the folder files on github repository :-
1.) $ git init
2.) $ git cd D:\FileFolderName
3.) $ git status
4.) If needed to switch the git branch, use this command : 
    $ git checkout -b DesiredBranch
5.) $ git add .
6.) $ git commit -m "added a new folder"
7.) $ git push -f https://github.com/username/MyTestApp.git TestBranch
    (i.e git push origin branch)
Ankita_systematix
źródło
4
git init

Dodaj pliki do nowego lokalnego repozytorium. To przygotowuje je do pierwszego zatwierdzenia.

git add .

Dodaje pliki do lokalnego repozytorium i przekazuje je do zatwierdzenia. Aby cofnąć scenę pliku, użyj polecenia „git reset HEAD YOUR-FILE”.

Zatwierdź pliki przechowywane w lokalnym repozytorium.

git commit -m "First commit"
# Commits the tracked changes and prepares them to be pushed to a remote

magazyn. Aby usunąć to zatwierdzenie i zmodyfikować plik, użyj polecenia „git reset --soft HEAD ~ 1” oraz zatwierdzenia i dodania pliku ponownie. Skopiuj pole URL zdalnego repozytorium Na górze strony Szybkiej instalacji repozytorium GitHub kliknij, aby skopiować adres URL zdalnego repozytorium.

W wierszu polecenia dodaj adres URL zdalnego repozytorium, do którego zostanie przekazane repozytorium lokalne.

git remote add origin remote repository URL
# Sets the new remote
git remote -v
# Verifies the new remote URL

Przekaż zmiany w lokalnym repozytorium do GitHub.

git push origin master
# Pushes the changes in your local repository up to the remote repository you 

określony jako pochodzenie

Shahid Karimi
źródło
4
  1. Z wiersza poleceń przejdź do katalogu lokalnego repozytorium.
  2. Utwórz nowe repozytorium w GitHub, zapewni ci link zakończony .git.
  3. w cmd run: git remote add origin [your_GitHub_Repository_link](pamiętaj, że link powinien kończyć się na .git)
  4. następnie uruchomić : git push -u origin master

Mam nadzieję, że to się przydało.

Ali Ezzat Odeh
źródło
4

Utwórz nowe repozytorium

git clone <url>
cd "repositoryName"
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master

Istniejący folder

cd existing_folder
git init
git remote add origin <url>
git add .
git commit -m "Initial commit"
git push -u origin master

Istniejące repozytorium Git

cd existing_repo
git remote rename origin old-origin
git remote add origin <url>
git push -u origin --all
git push -u origin --tags
Anit Kumar
źródło
Jaka jest różnica między zatwierdzaniem a wypychaniem? do czego odnosi się „pochodzenie” i „mistrz” w push? gałąź?
ealeon
2

Najpierw utwórz nowe repozytorium w Github z nazwą projektu, a następnie wykonaj poniższe kroki ..

1)git init
2)git add *
3)git commit -m "first commit"
4)git remote add origin https://github.com/yuvraj777/GDriveDemo.git
5)git push -u origin master
Yuvraj Sinh
źródło
2

Wiem, że to stare pytanie, ale staram się wyjaśnić każdy krok, aby pomóc innym. Oto jak dodaję istniejące źródło do git:

  1. Utwórz repo na git, abyś miał ssh || https, gdzie zdalnie dodasz kod źródłowy.
  2. W swoim terminalu przejdź do ścieżki swojego projektu.
  3. Uruchom git init(tutaj inicjujesz projekt jako git).
  4. Uruchom git add *(tutaj dodajesz wszystkie pliki i foldery z projektu).
  5. Uruchom git commit -m "Initial Commit."(tutaj zatwierdzasz swoje pliki i foldery dodane w kroku 4; pamiętaj, że nie możesz wypchnąć swoich zmian bez ich zatwierdzenia).
  6. Uruchom git remote add origin https://[email protected]/your_username/project-name.git(tutaj dodajesz zdalny projekt, do którego zostanie przekazane twoje źródło; zamień mój link na ssh || https z kroku # 1).
  7. Uruchom git push -u origin master(tutaj wpychasz swoje źródło do repozytorium git).

Uwaga: Są to proste kroki do przekazania źródła do gałęzi master .

Lucaci Sergiu
źródło
2

Nienawidzę dodawać kolejnej odpowiedzi, ale mój konkretny scenariusz nie jest tutaj w pełni opisany. Miałem lokalne repozytorium z historią zmian, które chciałem zachować, oraz niepuste repo utworzone dla mnie na Github (czyli z domyślnym plikiem README.md). Tak, zawsze możesz odtworzyć repozytorium Github jako puste repozytorium, ale w moim przypadku ktoś inny ma uprawnienia do utworzenia tego repozytorium, a ja nie chciałem go niepokoić, jeśli było łatwe obejście problemu.

W tym scenariuszu napotkasz ten błąd podczas próby git pushzdalnego ustawienia źródła:

 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to '[email protected]:<my repo>.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

Jak wskazuje błąd, musiałem zrobić git pullpo ustawieniu zdalnego pochodzenia, ale musiałem określić --allow-unrelated-historiesopcję. Bez tej opcji git pullnarzeka warning: no common commits.

Oto dokładna sekwencja poleceń, które działały dla mnie:

git remote add origin <github repo url>
cp README.md README.md-save
git pull origin master --allow-unrelated-histories
mv README.md-save README.md
git commit -a
git push
Jonathan Fischer
źródło
Mam ten sam problem, ale twoje kroki prowadzą do dziwnego edytora tekstów
John KTejik
Ach, domyślam się, że zwykle używasz interfejsu użytkownika i zwykle nie zatwierdzasz z wiersza poleceń (nic złego z tym, używam interfejsu SourceTree). Wyskakujący edytor najprawdopodobniej jest edytorem vi, którego interfejs sam w sobie jest tematem, więc nie będę się tutaj zagłębiał.
Jonathan Fischer
2

Na dzień 29.07.2019 Github wyświetla użytkownikom instrukcje wykonywania tego zadania po utworzeniu repozytorium, oferując kilka opcji:

utwórz nowe repozytorium w wierszu poleceń

git init
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/novomotus/vitaprice.git
git push -u origin master

wypchnij istniejące repozytorium z wiersza poleceń

git remote add origin https://github.com/novomotus/vitaprice.git
git push -u origin master

importuj kod z innego repozytorium

naciśnij importprzycisk, aby zainicjować proces.

Dla uczniów wizualnych:

wprowadź opis zdjęcia tutaj

theeastcoastwest
źródło
1

Wystarczy wykonać czynności opisane w tym URl: KLIKNIJ TUTAJ

Shubham Mishra
źródło
0

Odkryłem, że stymulowanie aktualizacji w „naturalnej” sekwencji było łatwiejszą drogą niż forsowanie siły.

Przypuśćmy, że repo zostało już utworzone na github i być może umieściłeś też trochę plików README.md.

  1. Na komputerze otwórz terminal i git clone [repo URL]

  2. Zobaczysz nowy folder z nazwą twojego repozytorium. Zmień nazwę - nie ma znaczenia.

  3. Przenieś swój kod, pliki itp. Do tego folderu. Edytuj plik README.md, jeśli musisz.

  4. Teraz otwórz Terminal / wiersz poleceń, wejdź do tego folderu i rób rzeczy tak, jakbyś robił następną aktualizację repozytorium:

git add .
git commit -m "v2"
git push origin master

Uwaga: po wykonaniu polecenia git może odrzucić, prosząc najpierw o skonfigurowanie adresu e-mail użytkownika i hasła. Postępuj zgodnie z instrukcjami podanymi na ekranie, a następnie ponownie uruchom komendę commit.

  1. Te trzy polecenia są tym, co robisz teraz, za każdym razem, gdy chcesz wypchnąć kolejną aktualizację.
Nikhil VJ
źródło