Cómo agregar múltiples files a Git al mismo time

Este será mi primer uso de git. He agregado nuevos files (mucho) a la carpeta / proyecto (repository local git).

Revisé tutoriales y foros en línea y veo que puedo hacer

git commit -a 

Así que voy a la carpeta base del repository y hago una

  sudo git commit -a 

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

¿Pueden por favor bosquejar los commands que necesito usar?

 git commit -a 

y

 git push? 

Para agregar todos los cambios que ha realizado:

git add .

Para comprometerlos:

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

Puedes poner esos pasos juntos así:

git commit -a -m "MY MESSAGE HERE"

Para impulsar sus cambios comprometidos desde su repository local a su repository remoto:

git push origin master

Puede que tengas que escribir tu nombre de usuario / contraseña para github después de esto. Aquí hay una buena introducción al uso de git. Un poco viejo, pero cubre lo que está pasando realmente bien.

Para agregar múltiples files en Git, use el command git add , seguido de una list de nombres de files separados por espacios.

 git add <file-name-1> <file-name-2> <file-name-3> ... 

También puede seleccionar varios files como este

 git add folder/subfolder/* 

Esto agregará todos los files en la subcarpeta especificada. Muy útil cuando editas un grupo de files, pero solo quieres comprometer algunos de ellos …

Como algunos han mencionado, una forma posible es usar git interactive staging . Esto es genial cuando tienes files 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 , enter obtendrá una list de files 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 tiene que insert el número de files que desea agregar, así que si quisiéramos agregar TODO e 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 file fue agregado.

Ahora imagina que tienes 7 files y quieres agregarlos todos excepto el 7mo. Claro que podríamos escribir 1,2,3,4,5,6 pero imaginemos que en lugar de 7 tenemos 16, eso sería bastante engorroso, lo bueno es que no necesitamos escribirlos todos porque podemos usar ranges, 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 ranges múltiples, así que si queremos de 1 a 3 y de 5 a 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 descomprimir files, si escribimos -number , por lo que si quisiéramos dejar de grabar el número de file 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 dejar de grabar un range de files, por lo que si escribimos -range, todos los files de ese range quedarán sin grabar. Si quisiéramos desestabilizar todos los files 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>> 

Si desea agregar varios files en una carpeta determinada, puede dividirlos usando {,} . Esto es increíble para no repetir paths largos, por ejemplo

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

Tenga cuidado de no poner espacios entre el,.

Cuando cambia files o agrega uno nuevo en el repository, primero debe organizarlos.

 git add <file> 

o si quieres escenificar todo

 git add . 

Al hacer esto, le dice que ingrese los files que desea en su próxima confirmación. Entonces lo haces:

 git commit -m 'your message here' 

Tu usas

 git push origin master 

donde origen es la twig del repository remoto y el maestro es su twig de repository local.

Parece que git está lanzando tu editor (probablemente vi ) para que puedas escribir un post 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 post de confirmación en la línea de command (usar esto no abrirá un editor)

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