2012-09-26 13 views
10

Czy istnieje sposób na ponowne ustawienie gałęzi na inną podczas pomijania określonego (konfliktu) zatwierdzenia w innej gałęzi?Jak dokonać ponownej bazy danych podczas pomijania określonego zatwierdzenia?

Na przykład chcę zmienić bazę mybranch na master, ale master zawiera zatwierdzenie, które będzie w konflikcie z zatwierdzeniami w master, więc wolę cofnąć to zatwierdzenie całkowicie.

-o-o-o-o-o-x-o-o-o-o master 
    | 
    o-o-o-o mybranch 

x oznacza konfliktowy commit.

Odpowiedz

23

Wykorzystanie interaktywnych rebase:

git rebase -i master 

Edytor otworzy i będziesz miał listę zatwierdzeń takiego:

pick b8f7c25 Fix 1 
pick 273b0bb Fix 2 
pick 6aaea1b Fix 3 

prostu usunąć popełnić chcesz pominąć. Zostanie on pominięty podczas zmiany twojej gałęzi na master.

P.S. Jeśli nie widzisz edytora, zapoznaj się z tym pytaniem w celu rozwiązania problemu: How can I set up an editor to work with Git on Windows?

+0

Edytor pokazuje tylko zatwierdzenia na moim banku. Czy istnieje sposób, aby to pokazać, pokazując wszystkie zobowiązania; tj. od czubka miednicy, do mistrza i do czubka mistrza? – Phillip

+1

Czy chcesz usunąć zatwierdzenie w swojej gałęzi lub w master? Druga opcja, jeśli jest całkiem bezpieczna i spowoduje problemy dla wszystkich innych programistów, którzy mają '' master'' jako ich poprzednik. –

+0

Chcę pominąć commit na master (dodałem diagram jako część mojego pytania). Nie martwię się w tej chwili o "mistrza" na wyższym poziomie. – Phillip

Powiązane problemy