Git: Guardar un solo archivo
Me gustaría poder guardar solo los cambios de un solo archivo:
git stash save -- just_my_file.txt
Lo anterior no funciona. ¿Alguna alternativa?
4 answers
Creo que stash -p
es probablemente la opción que desea, pero en caso de que se encuentre con otras cosas aún más difíciles en el futuro, recuerde que:
Stash
es realmente solo una alternativa muy simple a los únicos conjuntos branch
un poco más complejos. Stash es muy útil para mover cosas rápidamente, pero puedes lograr cosas más complejas con ramas sin mucho más dolor de cabeza y trabajo.
# git checkout -b tmpbranch
# git add the_file
# git commit -m "stashing the_file"
# git checkout master
Vaya y haga lo que quiera, y luego simplemente rebase
y / o merge
el tmpbranch. Realmente no es que mucho trabajo extra cuando necesitas hacer un seguimiento más cuidadoso de lo que te permitirá stash.
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
2012-09-14 13:15:28
Puede almacenar interactivamente líneas individuales con git stash -p
(análogo a git add -p
).
No toma un nombre de archivo, pero puede omitir otros archivos con d hasta que llegue al archivo que desea almacenar y el almacenamiento de todos los cambios allí con a.
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
2012-09-14 09:25:29
La mejor opción es preparar todo menos este archivo, y decirle a stash que mantenga el índice con git stash save --keep-index
, almacenando así su archivo sin formato:
$ git add .
$ git reset thefiletostash
$ git stash save --keep-index
Como señala Dan, thefiletostash
es el único que se restablece con el alijo, pero también almacena los otros archivos, por lo que no es exactamente lo que quieres.
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
2012-09-14 12:53:11
En caso de que en realidad significa "discard changes" cada vez que utilice 'git stash' (y realmente no usar git stash para guardar temporalmente), en ese caso se puede utilizar
git checkout -- <file>
Tenga en cuenta que git stash es solo una alternativa más rápida y simple a ramificar y hacer cosas.
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-12-19 12:14:32