Cómo agregar varios archivos a Git al mismo tiempo


Este será mi primer uso de git. He añadido nuevos archivos ( muchos) a la carpeta / proyecto (repositorio local de git).

Pasé por tutoriales en línea y foros y ver que puedo hacer

     git commit -a

Así que voy a la carpeta base del repositorio y hago un

    sudo git commit -a

Pero entonces, algunas pantallas aparecen y me piden que agregue un comentario que hago. no sé cómo proceder o salir. No quiero meter la pata, así que hice ctrl + Z y no hice nada.

Pueden ustedes por favor ¿esbozar los comandos que necesito usar?

git commit -a 

Y

git push?
Author: Reggie Pinkham, 2013-10-25

8 answers

Para añadir todos los cambios realizados:

git add .

Para cometerlos:

git commit -m "MY MESSAGE HERE" #-m es la bandera del mensaje

Puedes juntar esos pasos así:

git commit -a -m "MY MESSAGE HERE"

Para enviar los cambios confirmados desde su repositorio local a su repositorio remoto:

git push origin master

Es posible que tenga que escribir su nombre de usuario/contraseña para github después de esto. Aquí está un buen manual sobre el uso de git. Un poco viejo, pero cubre lo que está pasando realmente bien.

 84
Author: dax,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-02-28 07:04:46

Utilice el comando git add, seguido de una lista de nombres de archivo separados por espacios, por ejemplo,

git add <file-name-1> <file-name-2> <file-name-3>
 243
Author: Reggie Pinkham,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-04-17 01:49:22

También puede seleccionar varios archivos como este

git add folder/subfolder/*

Esto agregará todos los archivos en la subcarpeta especificada. Muy útil cuando editas un montón de archivos pero solo quieres confirmar algunos de ellos...

 16
Author: nadalsol,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-02-03 15:59:02

Como algunos han mencionado, una forma posible es usar git interactive staging. 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 presiona 2 entonces enter obtendrá una lista de archivos disponibles para agregar:

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 los archivos que deseas agregar, por lo que si queremos agregar TODO y index.html escribiríamos 1,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 el archivo era añadir.

Ahora imagina que tienes 7 archivos y quieres añadirlos 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, escribiendo 1-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, por lo que si queremos del 1 al 3 y del 5 al 7 escribimos 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 unstage archivos, si escribimos -number, por lo que si queríamos unstage file number 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 se puede imaginar también podemos unstage una amplia gama de archivos, así que si nos escriba -range todos los archivos en ese rango sería unstaged. Si quisiéramos eliminar 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>>
 12
Author: Fabio Antunes,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-03-11 15:13:14

Si desea agregar varios archivos en una carpeta determinada, puede dividirlos utilizando {,}. Esto es impresionante para no repetir caminos largos, por ejemplo,

git add long/path/{file1,file2,...,filen}

Tenga cuidado de no poner espacios entre el ,.

 10
Author: EliuX,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-06-16 22:31:31

Cuando cambias archivos o añades unos nuevos en el repositorio primero debes prepararlos.

git add <file>

O si desea organizar todo

git add .

Al hacer esto le estás diciendo a git qué archivos quieres en tu próximo commit. Entonces lo haces:

git commit -m 'your message here'

Utiliza

git push origin master

Donde origin es la rama del repositorio remoto y master es su rama del repositorio local.

 3
Author: somi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-10-24 20:45:17

Parece que git está lanzando tu editor (probablemente vi) para que puedas escribir un mensaje de confirmación. Si no está familiarizado con vi, es fácil aprender los conceptos básicos. Las alternativas son:

  • Use git commit -a -m "my first commit message" para especificar el mensaje de confirmación en la línea de comandos (usar esto no lanzará un editor)

  • Establezca la variable de entorno EDITOR en un editor con el que esté familiarizado

 1
Author: Greg Hewgill,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-10-24 20:48:11

Si desea preparar y confirmar todos sus archivos en Github, haga lo siguiente;

git add -A
git commit -m "commit message"
git push origin master

 1
Author: Johnson Ogwuru,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-09-08 14:50:31