GIT: Tworzenie zdalnego repozytorium

Wiem, że temat nie nadaje się do tego działu, ale uznałem że tutaj najszybciej i najkonkretniej otrzymam pomoc.
Mam lokalne repo i chciałem z niego utworzyć zdalne, tak aby zachować całą historię zmian. Jak to zrobić, bo kiedy przekopiuję po prostu katalog .git/ to przy próbie wypchnięcia zmian dostaję błędy, więc nie robię tego prawidłowo.

Eeee… chodzi ci o przeniesienie lokalnego projektu do gita? Hmmm… to może wejdź do konsoli, idź do folderu z projektem, i tam kolejno.

git init
git add .
git status
sprawdzasz czy wszystko się dodało
git commit -m “tutaj wiadomość, np. Projekt Apollo13 do nawigacji międzyplanetarnej”
git push

Nie, chodzi mi o utworzenie z lokalnego projektu zdalnego repozytorium.

No dobrze, spróbuję jeszcze raz XD Stworzyłem na pulpicie projekt, dodałem dwa pliki i zrobiłem tak

cd /mnt/c/User/Administrator/Desktop/Project
git init
git add .
git commit -m “test”

Poszedłem do mojego gita, utworzyłem repo test2

git remote add origin https://github.com/marsek/test2.git
git push --set-upstream origin master
Username for ‘https://github.com’:
Password for ‘https://marsek@github.com’:
Counting objects: 3, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 226 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://github.com/marsek/test2.git

  • [new branch] master -> master
    Branch master set up to track remote branch master from origin.

Jak wejdziesz w link to możesz zobaczyć że repo utworzone, i tam lokalne pliki

Ale utworzeniem zdalnego repo zajął się chyba w tym wypadku github? Ja potrzebuję go zrobić we własnej lokalizacji, bez wykorzystywania portali tego typu.

https://help.github.com/articles/adding-an-existing-project-to-github-using-the-command-line/

Czyli interesującą Cię komendą będzie git remote add origin <remote repository URL>

W tym linku jest to samo co napisałem wyżej co koledze, z tego co zrozumiałem, nie pasuje i nie mam pojęcia o co mu chodzi -_-

Dobrze spróbuję tak że zainicjuję puste repo w lokalizacji zdalnej i wypchnę tam swój projekt. Potrwa to długo i mam nadzieję że ze wszystkimi zmianami historycznymi :wink:

Ja wiem jak dodać adres zewnętrznego repo, wiem jak zainicjować nowe repo, wiem jak wypchnąć zmiany. Chodziło mi o to jak zainicjować zdalne repo mając już na serwerze cały projekt. No ale jeśli robi się to tak jak lokalne to chyba wiem wszystko.

To może git submodule? Nie używałem więc nie wiem jak działa w 100%

Na jakim serwerze?

Ok, wypycha się. Wygląda na to że przekombinowałem ze względu na niezrozumienie działania :wink: . Wystarczyło zainicjować puste repozytorium w zdalnej lokalizacji i tam popchnąć. Wychodzi na to, że mogę tak potraktować każde repozytorium i np wypchnąć projekt zamiast na serwer to do kolegi.
Człowiek całe życie się uczy :wink:

edit.
Jednak błąd :confused:
Czy ktoś mi to może przetłumaczyć na ludzki?

Counting objects: 9518, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (4122/4122), done.
Writing objects: 100% (9518/9518), 1.12 GiB | 3.73 MiB/s, done.
Total 9518 (delta 5341), reused 9450 (delta 5306)
remote: Resolving deltas: 100% (5341/5341), done.
remote: error: refusing to update checked out branch: refs/heads/master
remote: error: By default, updating the current branch in a non-bare repository
remote: is denied, because it will make the index and work tree inconsistent
remote: with what you pushed, and will require 'git reset --hard' to match
remote: the work tree to HEAD.
remote: 
remote: You can set 'receive.denyCurrentBranch' configuration variable to
remote: 'ignore' or 'warn' in the remote repository to allow pushing into
remote: its current branch; however, this is not recommended unless you
remote: arranged to update its work tree to match what you pushed in some
remote: other way.
remote: 
remote: To squelch this message and still keep the default behaviour, set
remote: 'receive.denyCurrentBranch' configuration variable to 'refuse'.
  1. Lokalne repo:
    git init
    some changes
    git add .
    git commit

  2. Przygotowanie zdalnego repo
    git init --bare

  3. Podpięcie lokalnego repo do zdalnego
    git remote add nazwazdalna adres/zdalnego/repo

  4. Synchronizacja zdalnego repo względem lokalnego
    git push nazwazdalna nazwabrancha
    ewentualnie:
    git push nazwazdalna --all

Więcej opisów i informacji: https://git-scm.com/book/en/v2/Git-on-the-Server-Setting-Up-the-Server

Zdalne repo do którego się pushuje różni się od lokalnego tym, że nie zawiera head ponieważ ono tylko przechowuje zmiany i nie potrzebuje wskaźnika na aktualny “stan”. Dlatego trzeba je utworzyć trochę inaczej niż lokalne.

1 polubienie