Completamente copy de security de un git repo?

¿Hay alguna forma sencilla de realizar una copy de security de un repository de git completo que incluya todas las twigs y tags?

¿Qué hay de hacer un clon de eso?

git clone other/repo.git 

Cada repository es una copy de security de su control remoto.

 git bundle 

Me gusta ese método, ya que resulta en un solo file, más fácil de copyr.
Ver ProGit: pequeño package de alegría .
Ver también " ¿Cómo puedo enviar a alguien un repository git? ", Donde el command

 git bundle create /tmp/foo-all --all 

se detalla:

git bundle solo includeá las references que se muestran en git show-ref : esto incluye encabezados, tags y encabezados remotos.
Es muy importante que la base utilizada esté en manos del destino.
Está bien, por precaución, hacer que el file del package contenga objects que ya están en el destino, ya que estos se ignoran al desempaquetar en el destino.


Para usar ese package, puede clonarlo, especificando una carpeta inexistente (fuera de cualquier repository git):

 git clone /tmp/foo-all newFolder 

Ampliando otras respuestas, esto es lo que hago:

Configure el repository: git clone --mirror user@server:/url-to-repo.git

Luego, cuando desee actualizar la copy de security: git remote update desde la location del clon.

Esto respalda todas las twigs y tags, incluidas las nuevas que se agregan más tarde, aunque vale la pena señalar que las twigs que se eliminan no se eliminan del clon (lo que para una copy de security puede ser una buena opción).

Esto es atómico por lo que no tiene los problemas que una copy simple podría tener.

Ver http://www.garron.me/en/bits/backup-git-bare-repo.html

Todo está contenido en el directory .git . Solo respalde eso junto con su proyecto como lo haría con cualquier file.

usar package de git, o clonar

copyr el directory de git no es una buena solución porque no es atómico. Si tiene un repository grande que demora mucho time en copyrse y alguien lo empuja a su repository, esto afectará su respaldo. Clonar o hacer un package no tendrá este problema.

Puede hacer una copy de security del git repo con git-copy a un tamaño de almacenamiento mínimo.

 git copy /path/to/project /backup/project.repo.backup 

Entonces puedes restaurar tu proyecto con git clone

 git clone /backup/project.repo.backup project 

Aquí hay dos opciones:

  1. Puede tomar directamente una tar del directory git repo ya que tiene todo el contenido del repository en el server. Existe una pequeña posibilidad de que alguien esté trabajando en repository mientras realiza copys de security.

  2. El siguiente command le dará el clon desnudo de repo (al igual que en el server), luego puede tomar un tar de la location donde lo clonó sin ningún problema.

     git clone --bare {your backup local repo} {new location where you want to clone} 
 cd /path/to/backupdir/ git clone /path/to/repo cd /path/to/repo git remote add backup /path/to/backupdir git push --set-upstream backup master 

esto crea una copy de security y realiza la configuration, para que pueda hacer un git push para actualizar su copy de security, lo que probablemente sea lo que quiere hacer. Solo asegúrate de que / path / to / backupdir y / path / to / repo sean al less discos duros diferentes, de lo contrario no tiene mucho sentido hacer eso.

Por lo que sé, puedes hacer una copy del directory en el que está tu repository, ¡eso es todo!

 cp -r project project-backup