Git stash

Временами при работе с git одновременно нескольких человек возникают не очень красивые записи в журнале:

Merge branch 'master' of ssh://<user>@<server>/path/to/repo

Эти строки не несут особенно большого объема информации. Так, к примеру, посмотрев данный коммит в git-web мы не увидим никакой информации об измененных файлах. Такая ситуация возникает когда вы делаете git pull в вашей рабочей копии репозитория, в которую внесены изменения, при этом происходит авто слитие кода.
Для борьбы с такими записями существует специальная команда – git stash.

Команда git stash созраняет все не закомиченные изменения во временное хранилище (карман) и сбрасывает состояние ветки до HEAD.

  • git stash – добавить текущие незакоммиченные изменения в стек изменений и сбросить текущую рабочую копию до HEAD’а репозитория;
  • git stash list – показать все изменения в стеке;
  • git stash show – показать последнее измененеие в стеке (патч);
  • git stash apply – применить последнее изменение из стека к текущей рабочей копии;
  • git stash drop – удалить последнее изменение в стеке;
  • git stash pop – применить последнее изменение из стека к текущей рабочей копии и удалить его из стека;
  • git stash clear – очистить стек изменений.

То есть фактически необходимо вызвать следующую последовательность команд:

git stash
git pull
git stash apply
git add -u
git commit
git push

git stash drop