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.
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.)
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
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
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".