Apuntes útiles para git
En general, esto está extraído del libro /Pro Git/
1. Crear repositorio con material pre-existente:
# dentro del dir que se quiere como raíz del proyecto: git init + git add de todo lo necesario + git commit
# por encima del dir raíz del proyecto: git clone --bare {proyecto}.git
# transferir el nuevo {proyecto}.git al servidor
# ahora se puede prescindir (renombrar momentáneamente) del dir original y hacer git clone {server}:{path-al-proyecto}.git y el dir que se obtiene ya tiene una copia del repositorio tal como ha quedado.
2. Creación de repositorio en servidor
- Crear un repositorio puro ( bare ) a partir de un árbol de proyecto git. Si tienes un proyecto cuyo directorio raíz se llama 'aplichula', se crea un repositorio bare con git clone --bare aplichula aplichula.git. Aproximadamente, mete en 'aplichula.git' todo el árbol de dirs .git del proyecto (nótese que 'aplichula.git' es un directorio).
- Copiarlo a la ubicación del servidor que se estime conveniente. Si tengo todos mis proyectos git en un dir llamado 'git' en mi home del servidor, haré: scp -r aplichula.git miservidor.net:git.
Para mas info: Getting git on the server.
3. Clonando repositorios svn
Lo mejor es asegurar que en svn está hecho commit a todas las modificaciones locales. Entonces, con svn info se obtiene la dirección del repositorio svn y se utiliza git svn clone.
Cuando, como yo, tienes diferentes proyectos agrupados en un solo repositorio svn, hay que importar solo una parte del repositorio svn como proyecto git:
git svn clone --authors-file=users.txt --trunk=<path-al-trunk-clonado> <repositorio-svn> <dir-git-destino>
4. Longitud de los hashes
El valor de configuración core.abbrev establece la longitud de los hahses abrevidados. Puede ser 'auto' para que se calcule una longitud suficiente para el repositorio: git config core.abbrev auto, lo que es igual que no establecer el valor.
Esa medida se aplica si se utiliza la opción de línea de comandos abbrev-commit, o se ha puesto a true el valor de configuración log.abbrevCommit. Esto último afecta a los comandos git-log, git-show y git-whatchanged.