Jak zaktualizować git clone -- mirror?

Utworzyłem repozytorium git, aby odzwierciedlać aktywną witrynę (która jest nie-gołym repozytorium git):

git clone --mirror ssh://[email protected]/path/to/repo

Teraz, aby aktualizować ten klon lustrzany ze wszystkimi zmianami od jego zdalnego pochodzenia, jakie polecenie lub polecenia muszę użyć?

Chciałbym aktualizować wszystko: commity, refy, Hooki, gałęzie itp.

Dzięki!
Author: J. Bruni, 2011-05-27

3 answers

Jest to polecenie, które musisz wykonać na lustrze:

git remote update
 176
Author: ralphtheninja,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-05-27 11:12:19

Jeśli chodzi o commity, refy, gałęzie i "i tak dalej ", odpowiedź Magnusa po prostu działa (Git remote update).

Ale niestety nie ma sposobu na sklonowanie / mirror / update hooków , tak jak chciałem...

Znalazłem bardzo ciekawy wątek o klonowaniu / dublowaniu haczyków:

Http://kerneltrap.org/mailarchive/git/2007/8/28/256180/thread

Nauczyłem się:

  • "Hooki" nie są uważane za część repozytorium zawartość.

  • Jest więcej danych, jak".Git / description" folder, który nie jest sklonowany, podobnie jak Hooki.

  • Domyślne Hooki wyświetlane w katalogu "Hooki" pochodzą z katalogu TEMPLATE_DIR

  • Jest taka ciekawa funkcja "template" na Gita.

Więc mogę albo zignorować to "clone the hooks thing", albo przejść do rsync strategii, biorąc pod uwagę cele mojego mirrora (kopia zapasowa + źródło dla innych klonów, tylko).

Cóż... Po prostu zapomnę o klonowaniu hooków i pozostanę przy" Git remote update".
  • Sehe właśnie zauważył, że nie tylko" Hooki " nie są zarządzane przez proces klonowania / aktualizacji, ale także stashes, rerere itp... Tak więc w przypadku ścisłej kopii zapasowej rsync lub odpowiednik byłby naprawdę dobrym rozwiązaniem. Ponieważ nie jest to naprawdę konieczne w moim przypadku (mogę sobie pozwolić na brak haczyków, stashów itp.), jak powiedziałem, będę trzymać się "Zdalnego update".
Dzięki! Poprawiłem trochę mojego własnego "git-fu"... :-)
 6
Author: J. Bruni,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-15 14:05:44

Zobacz tutaj: Git nie klonuje wszystkich gałęzi na kolejnych klonach?

Jeśli naprawdę tego chcesz, ciągnąc gałęzie zamiast push --mirror, Możesz zajrzeć tutaj:

"fetch --all" w repozytorium Git bare nie synchronizuje lokalnych gałęzi ze zdalnymi

Ta odpowiedź zawiera szczegółowe kroki, jak to osiągnąć stosunkowo łatwo:

 3
Author: sehe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:10:54