Cuando ejecuto git add -p
, ¿hay alguna forma de que git seleccione archivos recién creados como trozos para seleccionar?
Entonces, si hago un nuevo archivo llamado foo.java
, luego ejecuto git add -p, git no me permitirá elegir el contenido de ese archivo para agregarlo al índice.
git add -N
hace, simplemente agrega los archivos sin seguimiento especificados al índice, pero sin contenido.Cuando probé
git add -p someNewFile.txt
un nuevo archivo (un archivo sin seguimiento), git simplemente mostraría la salidaNo changes.
y se detendría. Tuve que decirle a git que tenía la intención de rastrear el nuevo archivo primero.Sin embargo, dado que no se rastreó el archivo, se mostraría como un trozo gigante que no se podía dividir (¡porque es todo nuevo!). Entonces, necesitaba editar el trozo en trozos más pequeños. Si no está familiarizado con eso, consulte esta referencia para comenzar.
Actualización: información de edición de Hunk Quería actualizar esto en caso de que desaparezca la referencia anterior. Debido a que el nuevo archivo no tiene seguimiento,
git add -p
mostrará cada línea en el archivo como una nueva línea en un trozo. Luego te preguntará qué quieres hacer con ese trozo, dándote el siguiente mensaje:Stage this hunk [y,n,q,a,d,/,e,?]?
Suponiendo que no desea confirmar todo el trozo (y, por lo tanto, todo el archivo; porque no estoy seguro de por qué querría usar
git add -p
en ese caso), querrá especificar la opcióne
para decirle a git que desea editar el trozo.Una vez que le digas a git que quieres editar el trozo, debería colocarte en el editor de tu elección para que puedas hacer tus cambios. Todas las líneas deben tener el prefijo
+
ay git tiene algunos comentarios explicativos (con el prefijo a#
) al final del archivo. Simplemente elimine las líneas que no desee en su confirmación inicial del archivo. Luego guarde y salga del editor.Explicación de Git de las opciones de hunk de git:
fuente
git add -N someNewFile.txt
seguido degit add -p
git add -p
se trata realmente de agregar cambios a los archivos ya registrados.El comando para seleccionar archivos de forma interactiva para agregar es
git add -i
. Por ejemplo:(El comando real tiene colores que no pude cortar y pegar aquí, así que es mejor de lo que parece)
En realidad, el comando p atch de
git add -i
hace lo mismo quegit add -p
, por lo que el segundo es un subconjunto del primero (¡aunque admito que me amoadd -p
yadd -i
me odio !).fuente
No changes.
en un nuevo archivo. El OP estaba preguntando cómo agregar trozos de un nuevo archivo, no todo el archivo. Creo que--intent-to-add
todavía se requiere aquí.add -p
solo no funcionará, pero esta respuesta sugiereadd -i
, que sí.git add -i
. Sin embargo, puede hacer lo mismo de forma no interactiva congit add -N
.También hay un enfoque muy similar al hacer uso de la
--cached
bandera ...1) Convierta sus cambios sin etapas en etapas, al igual que su archivo agregado.
2) Mire las diferencias (nota: puede incluir tanto ediciones como archivos nuevos).
3) Cree el parche.
fuente
git add -p
es que no agrega todo, pero permítame elegir lo que quiero agregar. Esta solución lo sumaría todo a ciegas.