2010-08-30 48 views
49
  • ¿Tengo que configurar algo para decirle a git si algunos archivos son binarios, al igual que svn? O, ¿solo puede manejar datos binarios automáticamente?
  • Si cambio el archivo binario, de modo que tengo 100 revisiones binarias, ¿solo almacenaré las 100 versiones individualmente en el repositorio?
  • ¿Qué son los submódulos para con git?

Respuesta

44
  1. Git generalmente puede detectar archivos binarios automáticamente.
  2. No, Git intentará almacenar conjuntos de cambios basados ​​en delta if it's less expensive to (no siempre es el caso).
  3. Los submódulos se utilizan si desea hacer referencia a otros repositorios Git dentro de su proyecto.
4
git add my-binary-file 
git commit 
git push 

agregará su archivo binario; es automático

De hecho, si tiene 100 versiones de su archivo, lo almacenará (pero comprimirá).

Puede usar submódulos para hacer referencias a otros repositorios.

+13

sin necesidad de '' -a' en commit' git. –

19

Git usa una heurística para tratar de determinar si un archivo es binario. Consulte esto article para obtener más información y cómo forzar a git a tratar un archivo dado como un archivo binario.

Para un buen tutorial sobre submódulos, vea here y here.

+0

Deseé ver el enlace, pero es triste que esté roto ahora. – Eonil

+1

@Eo encontré [un archivo] (http://web.archive.org/web/20130206165707/http://www.bluishcoder.co.nz/2007/09/git-binary-files-and-cherry- picking.html) de eso. – Anko

+1

El enlace para determinar el binario http://bluishcoder.co.nz/2007/09/git-binary-files-and-cherry-picking.html no está más activo. –

8

En esencia, tenía el mismo problema: quería git pickle archivos, que son binarios, pero git piensa que son texto.

Encontré this chapter on Git Attributes en el libro de Pro Git. Así que resolví mis problemas mediante la creación de un archivo .gitattributes con esta línea:

*.pickle binary 
-1

El problema es con .gitignore

Las siguientes rutas son ignorados por uno de sus archivos .gitignore: XXX/AAAA /Bin1_0x1d_0x0d.bin

Use -f si realmente desea agregarlos.

git add-f XXX/AAAA/*

O

git add-f XXX/AAAA/Bin1_0x1d_0x0d.bin

Cuestiones relacionadas