Ответ 1
Конечно, git stash show
поддерживает это:
git stash show -p
В git я сбрасываю свои изменения. Возможно ли, что я смогу создать патч с тем, что я убрал? И применить этот патч в каком-то другом репозитории (мой сотрудник)?
Я знаю 'git format-patch -1', но я думаю, что это то, что я сделал. Но я ищу то же самое для изменений, которые я спрятал?
И как я могу применить патч в другом репозитории?
Конечно, git stash show
поддерживает это:
git stash show -p
Этот ответ содержит информацию о сохранении патча и применении его там, где вы хотите его использовать.
Чтобы записать файл в файл:
git stash show -p --color=never > my-patch-name.patch
Проверка патча выглядит хорошо:
git apply --stat my-patch-name.patch
Не проверять ошибки:
git apply --check my-patch-name.patch
Применить патч
git apply my-patch-name.patch
Использование
$> git stash list
[email protected]{0}: WIP on master: 84fx31c Merged with change to /public/
[email protected]{1}: WIP on master: 463yf85 FlupResource: also takes json as a query parameter
чтобы получить список ваших недавно спрятанных вещей. Git на самом деле создает объекты фиксации при нажатии.
Они совершают как все остальное. Вы можете проверить их в ветке:
$> git checkout -b with_stash stash@{0}
Затем вы можете опубликовать эту ветку, и ваш коллега может объединить или выбрать вишню, которая совершает.
Выше решения не будут работать для двоичных данных. Следующее добавить поддержку:
git stash show [email protected]{0} -p --binary
Изменить
Примечание. Мне просто хотелось добавить комментарий к приведенным выше ответам, но моей репутации недостаточно.
Я считаю, что это может быть одна из udpates от Git в последнее время. вам больше не придется исправлять изменения, которые вы спрятали. вы можете просто применить свои спрятанные изменения в одной ветки к другой.
скажем, что на ветке A вы спрятали некоторые изменения, названные stash @{1}.
Теперь вы переключаетесь на ветвь B. Вы можете просто сделать:
$git stash apply [email protected]{1}
это применимо, ваша ветка A изменяется на ветвь B.