web-dev-qa-db-fra.com

Comment sauvegarder un repo git?

Je prévois de passer de SVN à Git. Avec svn, je copie simplement mon dossier de dépôt quand je veux le sauvegarder. Cependant, git n'en a pas, alors que dois-je faire?

Devrais-je créer un clone sur un disque séparé et le mettre à jour en le tirant de mon projet? Ensuite, je peux graver/archiver ce dossier et il aura toute l’histoire?

Ceci est probablement évident, mais je veux être sûr quand il s'agit de sauvegardes. Je prétends toujours qu'il existe un référentiel racine.

25
user3109

Vous venez de le copier. git utilise un dossier de repo, il est simplement caché des vues de répertoires normales. (Le dossier s'appelle .git sur les systèmes * nix, il n'apparaît donc que si vous utilisez ls -a. Je suppose qu'il définit l'attribut "hidden" dans Windows, mais je n'ai jamais utilisé git dans un environnement Windows. certain de la façon dont il est traité ici.)

13
Dave Sherohman

La réponse d'Akira est correcte, mais vous pouvez ajouter --mirror pour créer un référentiel nu (pour une sauvegarde légèrement plus petite).

Nous utilisons la stratégie suivante (presque exactement):

git clone --mirror yourrepo backup.repo
tar cjf backup.repo.tar.bz2 backup.repo
scp backup.tar.bz2 ssh://somewhereelse

Ensuite, pour récupérer votre sauvegarde:

tar xjf backup.repo.tar.bz2
git clone backup.repo yourrepo
18
akirisol

J'utilise git bundle . Pour créer un fichier de copie (un fichier de sauvegarde), exécutez:

git bundle create backup.bundle master

Pour restaurer le référentiel avec le maître de branche, il suffit de cloner le fichier backup.bundle:

git clone backup.bundle -b master my-project
10
MariuszS

créer un nouveau clone ailleurs:

 % git clone yourepo somewhereelse

btw, git a un dossier de dépôt, vous pouvez le localiser dans votre copie de travail sous le sous-répertoire .git. chaque copie de travail a ce "dossier repo".

2
akira