Как я могу форматировать патч с тем, что я спрятал

В git я сбрасываю свои изменения. Возможно ли, что я смогу создать патч с тем, что я убрал? И применить этот патч в каком-то другом репозитории (мой сотрудник)?

Я знаю 'git format-patch -1', но я думаю, что это то, что я сделал. Но я ищу то же самое для изменений, которые я спрятал?

И как я могу применить патч в другом репозитории?

Ответ 1

Конечно, git stash show поддерживает это:

git stash show -p

Ответ 2

Этот ответ содержит информацию о сохранении патча и применении его там, где вы хотите его использовать.

Чтобы записать файл в файл:

 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

Ответ 3

Использование

$> 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}

Затем вы можете опубликовать эту ветку, и ваш коллега может объединить или выбрать вишню, которая совершает.

Ответ 4

Выше решения не будут работать для двоичных данных. Следующее добавить поддержку:

git stash show [email protected]{0} -p --binary

Изменить

Примечание. Мне просто хотелось добавить комментарий к приведенным выше ответам, но моей репутации недостаточно.

Ответ 5

Я считаю, что это может быть одна из udpates от Git в последнее время. вам больше не придется исправлять изменения, которые вы спрятали. вы можете просто применить свои спрятанные изменения в одной ветки к другой.

скажем, что на ветке A вы спрятали некоторые изменения, названные stash @{1}.

Теперь вы переключаетесь на ветвь B. Вы можете просто сделать:

$git stash apply [email protected]{1}

это применимо, ваша ветка A изменяется на ветвь B.