Pregunta ¿Cómo puedo guardar un archivo específico? [duplicar]


Posible duplicado:
Cómo esconder solo un archivo de varios archivos que han cambiado 

¿Cómo puedo esconder un archivo específico dejando los otros actualmente modificados fuera del alijo que estoy a punto de guardar?

Por ejemplo, si el estado de git me da esto:

younker % gst      
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#   modified:   app/controllers/cart_controller.php
#   modified:   app/views/cart/welcome.thtml
#
no changes added to commit (use "git add" and/or "git commit -a")

y solo quiero esconder app / views / cart / welcome.thtml, ¿cómo lo haría? Algo así como (pero por supuesto esto no funciona):

git stash save welcome_cart app/views/cart/welcome.thtml

1030
2018-03-31 21:05


origen


Respuestas:


EDITAR: Desde git 2.13, hay un comando para guardar una ruta específica al alijo: git stash push <path>. Por ejemplo: git stash push -m welcome_cart app/views/cart/welcome.thtml.

ANTIGUA RESPUESTA:

Puedes hacer eso usando git stash --patch (o git stash -p) - ingresará al modo interactivo donde se le presentará con cada trozo que se modificó. Utilizar n para omitir los archivos que no quiere esconder, y cuando encuentras el que quieres esconder, y q para dejarlo y dejar sin estallar los trozos restantes. a esconderá el trozo mostrado y el resto de los trozos en ese archivo.

No es el enfoque más fácil de usar, pero hace el trabajo si realmente lo necesita.


1574
2018-03-31 21:19



Por lo general, agrego a los cambios de índice que no quiero esconder y luego esconder con la opción --keep-index.

git add app/controllers/cart_controller.php
git stash --keep-index
git reset

El último paso es opcional, pero generalmente lo quiere. Elimina los cambios del índice.


Advertencia Como se señala en los comentarios, esto pone todo en el alijo, tanto en etapas como sin escena. El --keep-index simplemente deja el índice solo después de que se completa el alijo. Esto puede provocar conflictos de combinación cuando más tarde extrae el alijo.


245
2017-12-18 20:40