Muszę przenieść całe repozytorium na nowy komputer bez sieci, najlepiej jako pojedynczy plik. Git wiązka umożliwia git fetch
, git pull
operację stylu w środowisku sneakernet ale wydaje się zakładać, że masz już wersję roboczą repo na komputerze docelowym.
Jakie jest właściwe powołanie się na:
- Połącz wszystkie gałęzie w bieżącym repozytorium
- Uruchom nowe repozytorium w katalogu docelowym, tzn. Zainstaluj poprawnie zatwierdzenie roota
Wysłałem poprawkę w celu wyjaśnienia:
`git clone` can use any bundle created without negative refspecs
(e.g., `new`, but not `old..new`).
If you want to match `git clone --mirror`, which would clone other
refs such as `refs/remotes/*`, use `--all`.
If you want to provide the same set of refs that a clone directly
from the source repository would get, use `--branches --tags` for
the `<git-rev-list-args>`.
Więc $ git bundle create repo.bundle --branches --tags
najlepiej dopasowuje się klonowanie.
$ git bundle create repo.bundle --all
zapewni lustrzane odbicie twojej maszyny źródłowej, w tym jej zdalne referencje.
--all
opcji nie ma na mojej stroniebundle
podręcznika dla (patrzę na wersję 1.7.6.msysgit.0) ani nie ma pliku .bundle w sekcji adresów URL dlaclone
. Daje mi większą pewność, że polecam jego użycie.git bundle create <file> <git-rev-list-args>
. Bieganieman git-rev-list
(lubman git-log
) dałoby ci--all
. Ale zgadzam się, że powinno to być bardziej widoczne w dokumentacji poleceń pakietu.git show-ref
", co nie zawiera [list] opcji git-rev-list.git-rev-list-args
sposób można wybrać pozycje literatury, które są wyświetlane przezgit show-ref
polecenie.--all
zawierał dla mnie gałęzie zdalnego śledzenia (git 2.1.4). Mogłem zobaczyć zarefs/remotes/origin/*
pomocągit bundle list-heads bundlefile
lubgit ls-remote bundlefile
. Chociaż odzyskanie ich z pakietu jest trochę trudne.Najpierw sklonuj repozytorium i dołącz
--mirror
opcję.git clone --mirror [email protected]:path/repo.git
Dzięki temu wszystkie zdalne rozgałęzienia są również oddziałami lokalnymi gotowymi do łączenia w pakiet.
Następnie uruchomić
git bundle create repo.bundle --all
jak opisuje odpowiedź Jakuba Narębskiegoźródło
Sugerowałbym, abyś tarował lub spakował folder .git i po prostu rozpakował go w nowej lokalizacji, a następnie zrób
git reset --hard HEAD
. Wszystko, co jest wymagane dla wszystkich gałęzi, znajduje się w .git i wszystko, co powinieneś zrobić, to dostosować wszystkie piloty w pliku .git / config lub je usunąć.źródło