Mam istniejące repozytorium Git na moim komputerze lokalnym. Chciałbym przenieść to repozytorium do mojego serwera WWW, a następnie git clone
na moim komputerze lokalnym, aby sprawdzić moje repozytorium z serwera. Planuję, a następnie rozwijam na moim lokalnym komputerze i przesyłam aktualizacje z powrotem na serwer. Mogę ssh z mojego lokalnego komputera na serwer, ale nie odwrotnie. Jak powinienem to zrobić? Myślę, że powinno się jakoś używać git bundle, jednak kiedy próbowałem wykonać mój pakiet na moim serwerze, otrzymałem "ostrzeżenie: zdalny HEAD odwołuje się do nieistniejącego ref, nie może kasować". Na moim lokalnym komputerze działa system OS X, na serwerze działa Linux.Git: przenieś istniejące repozytorium z komputera na serwer, sklonuj z serwera
16
A
Odpowiedz
29
Na serwerze Linux, w nowym katalogu zrobić:
git init --shared --bare
Następnie na komputerze lokalnym:
git remote add origin server:path/to/repo
git push --all origin
Po tym, że serwer będzie miał pełną kopię repozytorium, a będziesz mógł naciskać i ciągnąć do i od niego. Nie ma potrzeby sprawdzania innego klonu z serwera, gdy już masz go na miejscu.
2
Jak o tym:
local> cd my_repo.git
local> git remote add origin [email protected]:/path/to/my_repo.git
local> git config branch.master.remote origin
local> git config branch.master.merge refs/heads/master
local> git push origin master
To wyśle dane z lokalnego repo do serwera. Następnie wykonaj następujące czynności:
local> cd ..
local> git clone [email protected]:/path/to/my_repo.git my_repo2.git
Następnie zostanie sklonowany z serwera. Po usatysfakcjonowaniu możesz pozbyć się oryginalnego repozytorium i ewentualnie zmienić nazwę drugiego.
9
Zamiast "git push origin master" użyj "git push --all origin", abyś poruszał się po wszystkich gałęziach, a nie tylko gałęzi głównej.
Powiązane problemy
- 1. Repozytorium Git z jednego komputera na drugie
- 2. Przenieś "autorytatywne" repozytorium git z Github na prywatne github
- 3. Przenieś jedno repozytorium Git do podfolderu innego z oddziałami
- 4. Importuj istniejące repozytorium Git do IntelliJ IDEA
- 5. Jak dokonać repozytorium Git na pusty serwer SVN z repo?
- 6. Jak zaimportować istniejące repozytorium git do Gitlab?
- 7. Przenieś RavenDb na inny serwer
- 8. Java: Przenieś projekt Eclipse z jednego komputera na drugi?
- 9. MySQL - Przenieś wszystko na nowy serwer
- 10. git push/clone na nowy serwer
- 11. Git: Nie można nacisnąć z jednego komputera.
- 12. Czy to źle, aby przenieść repozytorium z serwera 1.5 na serwer 1.7?
- 13. Node.js na MAC: Dostęp do serwera Node.js z innego komputera
- 14. Capistrano + Git: lokalny repozytorium do serwera produkcyjnego
- 15. Sklonuj repozytorium git przez ssh z nazwą użytkownika i hasłem Java
- 16. Git: przenieś zatwierdzenie "na wierzch"
- 17. ustawić repozytorium ftp z git
- 18. Serwer dostępu do railsów z innego komputera
- 19. Przenieś zadanie Hudsona na inny serwer
- 20. Git: przenieś HEAD z powrotem do poprzedniego zatwierdzenia
- 21. Konwersja repozytorium Git na SVN z SubGit
- 22. Jak scalić istniejące repozytorium git w puste i zachować historię?
- 23. Nadpisywanie zdalnego repozytorium git z moim repozytorium
- 24. Jak zaimportować i uruchomić istniejące wtyczki z repozytorium społeczności intelli
- 25. Git: automatyczne pobieranie z repozytorium?
- 26. Git-SVN: Zaktualizuj repozytorium Git ze scentralizowanego serwera SVN
- 27. Jak usunąć pochodzenie z repozytorium git
- 28. Git uszkodzone repo: jak wybrać obiekt git z czystym repozytorium
- 29. Czy można przełączyć użytkownika na repozytorium git?
- 30. Łączenie się z repozytorium bitbucket z serwera Jenkinsa
Wykonując 'git push origin master', pojawia się długi błąd, który zaczyna się od" Total 0 (delta 0), ponownie użyto 0 (delta 0) zdalny: błąd: odmowa aktualizacji odjętej gałęzi: refs/heads/master remote: error: Domyślnie aktualizuje bieżącą gałąź w repozytorium "open-to-bare". Jedyną zawartością moich repozytoriów na serwerze Linux jest ".git HEAD branches config opis hooks info refs obiektów", tak właśnie stworzono polecenie 'git init --shared --bare'. Używam git 1.7.1.1 na obu komputerach. –
Whoop, nieważne! Mam to teraz. Właściwie nie utworzyłem nowego katalogu na serwerze Linux, właśnie usunąłem to, co uważałem za całą jego zawartość przed uruchomieniem polecenia 'git init ...'. Tworząc nowy katalog, 'git init ...' ing it, zmieniając w celu użycia tego pochodzenia z moich lokalnych repozytoriów, a następnie pchanie działało. –
Działa to zasadniczo, ale potrzebowałem kilku dodatkowych kroków, aby to zadziałało, ponieważ mój serwer uruchamia niestandardowy port ssh: na OS X. Zacząłem od zainstalowania ssh-askpass (https://github.com/ markcarver/mac-ssh-askpass), następnie musiałem skonfigurować port w ~/.ssh/config (zobacz http://stackoverflow.com/a/5738592/217953), używając adresu URL w stylu SCP. – xgretsch