2010-01-12 12 views
9

Estoy grabando mis cosas en un DVD, antes de una reinstalación rápida. Nunca lo hice con git, siendo un usuario reciente. Así que solo estoy consultando con ustedes. Si lo entendí correctamente, solo necesito hacer una copia de seguridad de mi directorio de proyecto nombre_proyecto (que tiene .git dentro de él) mirando para ver los archivos ocultos junto con él, y cuando lo copio en la máquina "nueva" e instalo git nuevamente, reanudar como si nada hubiera pasado? ¿Correcto?proyecto de copia de seguridad que utiliza git

+0

La principal ventaja del haz es su capacidad para agrupar sólo una parte de la historia de la repo principal, permitiéndole hacer salvadas incrementales y aplicarlas incrementalmente en el destino. Además, es un archivo para copiar. – VonC

Respuesta

8

sí. está bien.

+4

la respuesta más corta y la que más alivió las preocupaciones :) – Rook

+4

Intenté simplemente decir "sí". pero no me deja publicar respuestas de menos de 15 caracteres: P Un repositorio de git es simplemente una carpeta (y sus subcarpetas) con un directorio .git inicializado con git init. puedes mover esta carpeta a cualquier lugar y funcionará con git. –

+0

Soy nuevo en Git también, por lo tanto, me voy a esta pregunta. A pesar de que 'git bundle' parece una mejor opción de acuerdo con otras respuestas aquí, si copias de seguridad de archivos manualmente, seguramente solo la carpeta _.git_ necesita una copia de seguridad? ¿Se puede reconstituir correctamente el estado actual de cualquier rama solo a partir del contenido de esa carpeta? –

11

Si sólo desea los archivos de proyecto de copia de seguridad (sin historia), se pueden utilizar git archive (de esa manera, no tengo a "mirar para archivo oculto")

El guión git-archive-all.sh realidad archivarán todos los repositorios Git y submódulos en la ruta actual.

Útil para crear un único archivo tar de un superproyecto git que contenga otros submódulos.


Como Charles Bailey menciona con razón en los comentarios, git bundle es más apropiado, para preservar la historia. (git bundle se introdujo en February 2007).

Ver Backing up a git repository with git bundle

git bundle fue diseñado para permitir la transferencia de git comete cuando no hay conexión directa entre repositorios (es decir: fuera de línea) pero utilizando parches no es una opción debido al gran número de confirmaciones y múltiples ramas
A git bundle es un archivo que se puede crear fácilmente y volver a importar, ya que se puede tratar como otro control remoto. Un ejemplo rápido:

[email protected]:~/devel$ git bundle create ~/devel.bdl master test 

y un paquete se guarda con ~/devel.bdl que contiene mis maestros y de prueba ramas.
Si ahora estoy en el repositorio B Solo uso [email protected]:~$ git ls-remote devel.bdl que me muestra las ramas almacenadas en el paquete.
utilizar el lote I sencilla tratarlo como un mando a distancia, utilizando git fetch (por ejemplo)

[email protected]:~/git/repoB$ git fetch ~/devel.bdl refs/heads/\*:refs/remotes/bundle/\* 
+1

El 'git-archive-all' es de meitar (http: // github.com/meitar) – VonC

+1

Para una copia de seguridad, creo que 'git bundle' es más apropiado que' git archive'. 'git archive' solo crea tarballs de árboles (snapshots) pero no conserva los commits y el historial. 'git bundle' create sin dependencias puede ser un repositorio liofilizado de tantas ramas como desee. –

+1

@Charles: gracias por el comentario. He editado mi respuesta en consecuencia. – VonC

Cuestiones relacionadas