А ещё в новых версиях GIT появилась отличная команда git stash. Это когда у вас есть локальные модификации, которые коммитить ещё рано (или совсем не нужно), а нужен чистый репозиторий. Так вот, обычно я откладывал в сторону эти модификации так:
git diff > my.diff
git diff | patch -p1 -R
А теперь это можно делать так:
git stash
Ну и там есть команды, чтобы посмотреть отложенное в сторону, применить его, и т.д.
Update: ну да, не "в новыз версиях", а несколько раньше. Эта фича появилась в середине 2007 года. Чёрт его знает, почему я про это сейчас пишу. Наверное, потому, что с недавних пор git в некоторых случаях предлагает явно ей воспользоваться.
Page Summary
![]() ![]() ![]() |
git stash
> Вы наверное ещё git add --patch не видели А не кошернее ли будет закомитить локальные изменения в отдельную ветку, поработать над master, а потом сделать rebase? Но даже в этом случае потом можно будет несколько коммитов перетосовать и слить в один (git rebase --interactive). > А не кошернее ли
Вот, прямо мануал (git-stash) цитирую: Interrupted workflow When you are in the middle of something, your boss comes in and demands that you fix something immediately. Traditionally, you would make a commit to a temporary branch to store your changes away, and return to your original branch to make the emergency fix, like this: # ... hack hack hack ... $ git checkout -b my_wip $ git commit -a -m "WIP" $ git checkout master $ edit emergency fix $ git commit -a -m "Fix in a hurry" $ git checkout my_wip $ git reset --soft HEAD^ # ... continue hacking ... You can use git-stash to simplify the above, like this: # ... hack hack hack ... $ git stash $ edit emergency fix $ git commit -a -m "Fix in a hurry" $ git stash pop # ... continue hacking ... |