2014-02-04 5 views
4

К сожалению, после нескольких лет работы с подрывной деятельностью, я пытаюсь разогреть git. Проблема заключается в следующем:git отменить изменения и отменить запрос на тягу

  • i forked удаленный проект.
  • push-commits (который теперь я хочу вернуть или просто исчезнуть!) На свой собственный пульт.
  • тянуть запрошено с моими изменениями выше.

Визуально это выглядит;

оригинальный проект:

A->B->C->D->E 

мой собственный пульт вилка (х, у, г мои фиксаций Откат или удалить, если это возможно):

A->X->Y->Z->C->D->E 

Я хочу, чтобы мой раздвоенный удаленный быть как и оригинальный пульт. Однако после того, как я попытался вернуться (с git revert [HASH]), я совершил один за другим и нажал эти реверты на свой собственный пульт. Кажется, запрос на извлечение не исчез.

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

Любые предложения перед этим?

+0

Примечание: сейчас у GitHub (июнь 2014 года) есть кнопка «Отменить» для PR: см. [Мой ответ ниже] (http://stackoverflow.com/a/24459266/6309) – VonC

ответ

0

Если у вас есть эти два пультов ДУ, определенные в локальном репо:

  • происхождения: точки на оригинальный репо
  • REMOTE2: указывает на свой личный вилке

И вы хотите, чтобы обновление от origin/somebranch до remote2/otherbranch, вы могли бы сделать так:

# make sure you have up to date branch data locally 
git fetch origin 
git fetch remote2 

# force push to remote2 from origin 
git push remote2 origin/somebranch:otherbranch --force 

Для сброса местного отделения в том же состоянии, как удаленный филиал:

git reset --hard origin/somebranch 
+0

Работал как шарм, tha НКС. Я НИКОГДА не буду делать улучшения в мастер-ветке, которую я обещаю. – px5x2

1

Предположим, что вы находитесь на своей основной ветке и хотите стереть некоторые коммиты, вы можете сделать git rebase -i A для запуска и удаления нежелательных коммитов из вашего местного репо. (there are some good git rebase -i informations on GitHub)

Вы можете затем git push --force origin master:master перезаписать удаленный филиал master с вашим местным. (предупреждение, я не несу ответственность за потерянный код, являющийся результатом этого: P).

Для вашего запроса на тяну, это вопрос GitHub, отличный от git, я думаю, вы можете легко закрыть его на веб-странице.

F.Y.I.git revert HASH фактически создает коммит, что сводит на нет патч HASH, это не на самом деле вновь обратиться ничего, как вы хотели его;)

2

Примечание: в срок PR (GitHub Прицепные Request), теперь (24 июня, 2014) может отменить пиар легко
(Смотрите также "Reverting a pull request"):

Introducing the Revert Button

вы можете easil у вернуться запрос тянуть на GitHub, нажав Revert:

https://camo.githubusercontent.com/0d3350caf2bb1cba53123ffeafc00ca702b1b164/68747470733a2f2f6769746875622d696d616765732e73332e616d617a6f6e6177732e636f6d2f68656c702f70756c6c5f72657175657374732f7265766572742d70756c6c2d726571756573742d6c696e6b2e706e67

Вам будет предложено создать новый запрос тянуть с изменениями:, вновь стали

https://camo.githubusercontent.com/973efae3cc2764fc1353885a6a45b9a518d9b78b/68747470733a2f2f6769746875622d696d616765732e73332e616d617a6f6e6177732e636f6d2f68656c702f70756c6c5f72657175657374732f7265766572742d70756c6c2d726571756573742d6e65772d70722e706e67

+0

Примечание: вам может потребоваться использовать Git для ручного возврата отдельных коммитов, если: Возврат запроса на вытягивание вызывает конфликты слияния Первоначальный запрос на извлечение не был первоначально объединен с GitHub (например, с использованием быстрого слияния по команде линия) – mpgn

Смежные вопросы