Como algunos han mencionado, una posible forma es usar la puesta en escena interactiva de git . Esto es genial cuando tienes archivos con diferentes extensiones.
$ git add -i
staged unstaged path
1: unchanged +0/-1 TODO
2: unchanged +1/-1 index.html
3: unchanged +5/-1 lib/simplegit.rb
*** Commands ***
1: status 2: update 3: revert 4: add untracked
5: patch 6: diff 7: quit 8: help
What now>
Si pulsa 2
a continuación, enter
obtendrá una lista de archivos disponibles para ser añadido:
What now> 2
staged unstaged path
1: unchanged +0/-1 TODO
2: unchanged +1/-1 index.html
3: unchanged +5/-1 lib/simplegit.rb
Update>>
Ahora solo tienes que insertar el número de archivos que quieres agregar, así que si quisiéramos agregar TODO
y index.html
escribiríamos1,2
Update>> 1,2
staged unstaged path
* 1: unchanged +0/-1 TODO
* 2: unchanged +1/-1 index.html
3: unchanged +5/-1 lib/simplegit.rb
Update>>
¿Ves el *
antes del número? eso significa que se agregó el archivo.
Ahora imagina que tienes 7 archivos y quieres agregarlos todos excepto el 7. Claro que podríamos escribir, 1,2,3,4,5,6
pero imagina que en lugar de 7 tenemos 16, eso sería bastante engorroso, lo bueno es que no necesitamos escribirlos todos porque podemos usar rangos, escribiendo1-6
Update>> 1-6
staged unstaged path
* 1: unchanged +0/-1 TODO
* 2: unchanged +1/-1 index.html
* 3: unchanged +5/-1 lib/simplegit.rb
* 4: unchanged +5/-1 file4.html
* 5: unchanged +5/-1 file5.html
* 6: unchanged +5/-1 file6.html
7: unchanged +5/-1 file7.html
Update>>
Incluso podemos usar múltiples rangos, así que si queremos del 1 al 3 y del 5 al 7 tecleamos 1-3, 5-7
:
Update>> 1-3, 5-7
staged unstaged path
* 1: unchanged +0/-1 TODO
* 2: unchanged +1/-1 index.html
* 3: unchanged +5/-1 lib/simplegit.rb
4: unchanged +5/-1 file4.html
* 5: unchanged +5/-1 file5.html
* 6: unchanged +5/-1 file6.html
* 7: unchanged +5/-1 file7.html
Update>>
También podemos usar esto para quitar la etapa de los archivos, si escribimos -number
, así que si quisiéramos quitar la etapa del archivo número 1, escribiríamos -1
:
Update>> -1
staged unstaged path
1: unchanged +0/-1 TODO
* 2: unchanged +1/-1 index.html
* 3: unchanged +5/-1 lib/simplegit.rb
4: unchanged +5/-1 file4.html
* 5: unchanged +5/-1 file5.html
* 6: unchanged +5/-1 file6.html
* 7: unchanged +5/-1 file7.html
Update>>
Y, como puede imaginar, también podemos desestandarizar un rango de archivos, por lo que si escribimos -range
todos los archivos de ese rango quedarían sin estadificar. Si quisiéramos quitar la etapa de todos los archivos del 5 al 7, escribiríamos -5-7
:
Update>> -5-7
staged unstaged path
1: unchanged +0/-1 TODO
* 2: unchanged +1/-1 index.html
* 3: unchanged +5/-1 lib/simplegit.rb
4: unchanged +5/-1 file4.html
5: unchanged +5/-1 file5.html
6: unchanged +5/-1 file6.html
7: unchanged +5/-1 file7.html
Update>>
git commit -a
abre un editor para que escriba el mensaje de confirmación. Ingrese un mensaje que desee ver como registro y salga del editor. Esto completa el compromiso. Siga eso enviando sus cambios al repositorio remoto usandogit push <remote name> <branch name>
comogit push remote master