В этой проблеме есть лучший ответ , хотя я мог бы просто сломать это шаг за шагом.
Вам нужно будет выбрать и проверить последние изменения восходящего потока, например:
git fetch upstream
git checkout upstream/master -b revert/john/foo_and_bar
. Посмотрев на журнал фиксации, вы должны найти что-то похожее на это:
blockquote>commit b76a5f1f5d3b323679e466a1a1d5f93c8828b269 Merge: 9271e6e a507888 Author: Tim Tom
Date: Mon Apr 29 06:12:38 2013 -0700 Merge pull request #123 from john/foo_and_bar Add foo and bar commit a507888e9fcc9e08b658c0b25414d1aeb1eef45e Author: John Doe Date: Mon Apr 29 12:13:29 2013 +0000 Add bar commit 470ee0f407198057d5cb1d6427bb8371eab6157e Author: John Doe Date: Mon Apr 29 10:29:10 2013 +0000 Add foo Теперь вы хотите вернуть весь запрос на растяжение с возможностью его дальнейшего отказа. Для этого вам нужно будет взять идентификатор merge commit .
В приведенном выше примере слияние слияния является верхней, где говорит «Объединенный запрос на тягу № 123 ...» .
Сделайте это, чтобы вернуть оба изменения ( «Добавить панель» и " Добавьте foo "), и вы получите в одном компе, возвращающем весь запрос на pull, который вы можете позже удалить и сохранить историю изменений в чистоте:
git revert -m 1 b76a5f1f5d3b323679e466a1a1d5f93c8828b269
Я был потенциально новичком и не мог понять примеры прямо! Тем не менее, сделал это путем создания строки и преобразования в xml с использованием DOM-парсера. после чего я проверяю его с помощью xsd.