2011-08-16 50 views
6

Mis disculpas si esta es una pregunta tonta pero soy un tipo VSS/VSTS tratando de convertir a Git :)¿Entrar en un solo archivo en Git?

He clonado un repositorio y he sacado un montón de proyectos de Visual Studio. Mientras trabajaba en esos proyectos, noté que otro desarrollador había enviado un archivo .sql no válido. He arreglado ese archivo .sql para ellos, pero ahora no estoy seguro de cómo registrar solo ese archivo .sql

Mis cambios de código están todos medio cocidos, por lo que no se pueden registrar en el presente. Tengo extensiones de Git en mi computadora, y cuando hago clic derecho en el archivo en el Explorador de Windows y voy a Extensiones de Git -> Confirmar, hay muchos archivos a los que se hace referencia a la izquierda. El archivo que deseo registrar tiene un símbolo de un lápiz, y la masa de otros archivos tiene un símbolo verde +.

+0

Puede valer la pena señalar que en git, a diferencia de muchos de sus predecesores, hay una distinción entre: (1) "confirmar" un cambio en un archivo (s) (con 'git commit') que simplemente compromete el cambie a su repositorio local, y (2) "presione" el cambio (con 'git push'), que propaga el cambio a un repositorio remoto, generalmente el" origen "(análogo a un servidor VSS o CVS o Subversion). – Will

Respuesta

11

solo necesita agregar los cambios en el archivo sql al índice y ejecutar git commit.

git add path/to/file.sql 
git commit -m 'fixed broken sql file' 

no se preocupe por sus otros cambios, siempre y cuando no lo ha add ellos ed, no van a estar comprometidos (para asegurarse de que no hay cambios en el índice, ejecute antes de añadir el git reset otro cambio)

+0

me gano: p – johnny

+1

También puedes usar 'git status' para ver qué archivos están organizados en el índice o' git diff -staged' para ver qué cambios se escenifican ... – johnny

+0

Leyenda, gracias :) – plenderj

0

Si puede usar gitbash o algo similar, use git add <filename>.

4

Es probable que sea más segura/más fácil de hacerlo desde la línea de comandos:

$ git add foo.sql 
$ git commit -m "Fixed foo.sql" 

Esto sólo compromete al foo.sql archivo. Antes de la confirmación que puede hacer:

$ git status 

para confirmar que sólo el archivo requerido se comprometerá (aparecerá una lista de los otros archivos modificados por separado, pero que no será "por etapas" para la próxima confirmación).

0

SmartGit pueden comprometer cambios en el árbol de trabajo de archivos individuales, incluso si se organizan otros archivos.

0

Con las versiones actuales de git también se puede hacer:

git commit <filename> 

Esto se comprometerán todo en ese archivo y sólo ese archivo. Lo que está actualmente organizado para el índice no importa.

Algunas versiones de git requieren argumentos adicionales para colocar antes del nombre del archivo. Esto incluye -m <message>.

Cuestiones relacionadas