Mam zdalne repozytorium git z dużą historią i wolnym kanałem połączenia. Gdzie są niektórzy użytkownicy lokalni, a powolne push/pull po dużych zobowiązaniach lub klonowanie od zera dla nowych użytkowników to duże problemy. Chcę stworzyć lokalne zwierciadło tego. Lokalne zmiany muszą zostać zatwierdzone dla lokalnego repozytorium i zsynchronizowane ze zdalnym w tle. Rozumiem, że ten problem jest popyt, ale nie znalazłem jeszcze rozwiązania (nie jestem administratorem zdalnego repo, po prostu próbuję uprościć pracę lokalną z nim).Git lokalne lustro
Odpowiedz
Ponieważ piszesz w komentarzach, że ludzie odpowiedzialni za powolne połączenie będą wykonywać większość pracy, sugerowałbym, aby skonfigurować powolną zdalną witrynę, aby była lustrem lokalnego repo, z którym się zaangażowałeś.
Najpierw upewnij gołe klon powolnego pilota na lokalnym serwerze
$ git clone --bare git://slow/repo.git
Ty mieszkańcy powinni teraz popełnić tylko do tego klonu, a nie powolnego pilocie.
następnie skonfigurować crona lub coś podobnego do pchania zmian w lokalnym repo do powolnego miejscu z
$ git push origin --mirror
Korzystając --mirror
powiedzieć git push wszystkie oddziały i tagi.
Dzięki! Testuję to na moje testowe repozytorium github i działa. Pełny klon prawdziwego zdalnego repo zajmuje 20 godzin lub więcej i stosuję to rozwiązanie w najbliższej przyszłości. – exbluesbreaker
Stwierdziłem, że to rozwiązanie spowoduje upuszczenie wszystkich zmian dokonanych na zdalnym repo, bez dostępu przez lokalny serwer lustrzany. Czy istnieje sposób scalenia zmian? Zobowiązania do zdalnego repo są rzadkością, ale nie chcę stracić takich zobowiązań. Na przykład. po raz pierwszy niektórzy lokalni programiści mogą przez pomyłkę kontynuować zatwierdzanie zdalnego repo. – exbluesbreaker
@exbluesbreaker: Możesz upuścić '--mirror', ale wtedy musisz określić gałąź, którą chcesz nacisnąć, np. 'git push origin master'. Wtedy prawdopodobnie chciałbyś również dodać '--tags' do tagów" push to push ". '--mirror' przesunie wszystkie lokalne gałęzie i znaczniki, więc zrobi to wszystko automatycznie (ale nadpisze zdalne zmiany). –
Powinieneś być w stanie dokonać płytkich klonów z
git clone --depth=20 url-to-your-repo some-path
Powinno to umożliwić Ci nie przeszkadza większość historii.
- 1. Anonimizuj lokalne repozytorium git?
- 2. Git Pull ignorując lokalne zmiany?
- 3. git: jak "skonsolidować" lokalne zobowiązanie
- 4. Jak zresetować "lokalne" repozytorium git?
- 5. Git: Cofnij zmiany lokalne; git dodaj. + git rm?
- 6. tylko do odczytu lustro git z repozytorium svn
- 7. Lustro Wget Mirror tylko
- 8. ustawienie repozytorium mafii.xml lustro
- 9. Git pull musi odrzucić lokalne pliki
- 10. Jak zastąpić tagi lokalne przy pobieraniu git?
- 11. git - jak mogę sklonować lokalne repozytorium svn?
- 12. git checkout automatycznie łączy lokalne modyfikacje
- 13. git selective revert zmiany lokalne z pliku
- 14. Połącz lokalne zatwierdzenia Git w jedno zatwierdzenie dla git-svn
- 15. Serwer proxy Maven kontra lustro
- 16. Czy istnieje publiczne lustro rubygems.org?
- 17. Jak śledzić lokalne/zmiany zestawów zmian za pomocą git-svn?
- 18. Git: Wyczyść lokalne i zdalne repozytorium i rozpocznij od nowa
- 19. Lokalne repozytorium Git i zdalne repozytorium - mylące pojęcia
- 20. Jak mogę zapisać lokalne zmiany, które przetrwają reset git --hard
- 21. git, zmiana w lokalnym oddziale wpływa na inne lokalne oddziały?
- 22. Jak scalić lokalne modyfikacje ze skrytką git bez dodatkowego zatwierdzenia?
- 23. poleceń Git do kasy każdą gałąź i zastąpić lokalne zmiany
- 24. Jak przenieść lokalne repozytorium git z jednego hdd na inny?
- 25. Jak skopiować lokalne repozytorium do zdalnego serwera za pomocą git?
- 26. Jak usunąć wszystkie tagi pochodzenia git i lokalne?
- 27. Git: Jak sprawdzić, czy lokalne repo jest aktualne?
- 28. Jak mogę zbudować moje lokalne repozytorium git na serwerze zewnętrznym?
- 29. git pull: mówi mi, żeby ukryć lokalne zmiany przed wyciągnięciem
- 30. Arabski lustro problemu z układem w Androidzie
Ten poprzedni wpis pomoże Ci uzyskać zwierciadło zdalnego repo http://stackoverflow.com/questions/3959924/whats-the-difference-between-git-clone-mirror-and-git-clone-bare –
Czy tylko twoi lokalni użytkownicy popełniają powolne zdalne repozytorium, czy też inni ludzie wykonują pracę gdzie indziej? –
@honk Tak. Użytkownicy lokalni wykonujący 99% pracy, zdalni użytkownicy potrzebują dostępu tylko do odczytu (lub z bardzo rzadkimi zatwierdzeniami). Myślę, że prędkość zdalnej lokalnej synchronizacji w tle będzie odpowiednia dla zdalnych użytkowników, myślę, że muszą mieć opóźnienie, jeśli synchronizacja jeszcze się nie zakończyła. – exbluesbreaker