2015-01-21 2 views
0

Вчера я представил свой первый когда-либо тянуть запрос к проекту, этот в самом деле:Github: Удалить фиксации из запроса тяговой

https://github.com/dotnet/corefx/pull/484

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

Учитывая, что я никогда не делал ни одного из них до того, как я могу изменить его, чтобы удалить ненужную фиксацию? Прочитывая, я не уверен, что я намерен переустановить свою ветку, и если так, я не уверен, как продолжить.

ответ

0

С помощью проекта коллаборационистов нам удалось обновить PR, не делая перебазироваться, читайте ниже:

https://github.com/dotnet/corefx/pull/484#issuecomment-71073511

Я не до конца понимаю, но это, казалось, включать в себя обновление вилкой и создавая новые ветви до точки HEAD в нужном месте, затем используйте git cherry-pick, чтобы поместить фиксацию, которую я хотел, в нужное место в моей ветке, затем, наконец, сделать git push; PR автоматически обновлялся до желаемого состояния.

2

Вы можете использовать git rebase -i, чтобы удалить фиксацию. Например, чтобы удалить второй последней фиксации, используйте

$ git rebase -i HEAD~3 

и просто удалить строку для фиксации вы хотите удалить. Затем надавите.

$ git push origin <branchname> -f 

Как правило, это не желательно, чтобы изменить историю филиала однажды опубликованы публично, вы должны вместо «вернуться» коммит.

Однако, если это было включено по ошибке, это один из возможных вариантов.

+0

Простите мое невежество, но если я удалю фиксацию из своей истории, что произойдет с изменениями, произошедшими в этой фиксации? В этом случае я стал «получать последние» от репо проекта до своей вилки. Означает ли это, что изменения остаются в исходных файлах, но больше нет истории/записи? –

+0

Если вы удалите фиксацию, изменения будут отброшены. Учитывая, что эти изменения уже находятся в мастер-ветке, я думал, что это ваше намерение. В вашем случае (если я правильно понял проблему), это также частично эквивалентно «$ git rebase master» вашего филиала. –

+0

Мне удалось решить проблему без перекомпоновки в конце, см. Мой ответ для деталей. –

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