Na przykład w następującej gałęzi głównej muszę wyrzucić do kosza tylko zatwierdzenie af5c7bf16e6f04321f966b4231371b21475bc4da, które jest drugim z powodu poprzedniej rebase:
commit 60b413512e616997c8b929012cf9ca56bf5c9113
Author: Luca G. Soave <[email protected]>
Date: Tue Apr 12 23:50:15 2011 +0200
add generic config/initializers/omniauth.example.rb
commit af5c7bf16e6f04321f966b4231371b21475bc4da
Author: Luca G. Soave <[email protected]>
Date: Fri Apr 22 00:15:50 2011 +0200
show github user info if logged
commit e6523efada4d75084e81971c4dc2aec621d45530
Author: Luca G. Soave <[email protected]>
Date: Fri Apr 22 17:20:48 2011 +0200
add multiple .container at blueprint layout
commit 414ceffc40ea4ac36ca68e6dd0a9ee97e73dee22
Author: Luca G. Soave <[email protected]>
Date: Thu Apr 21 19:55:57 2011 +0200
add %h1 Fantastic Logo + .right for 'Sign in with Github'
Muszę się utrzymać
- pierwsze zobowiązanie 60b413512e616997c8b929012cf9ca56bf5c9113,
- trzecie zobowiązanie e6523efada4d75084e81971c4dc2aec621d45530 i
- ostatnie zatwierdzenie 414ceffc40ea4ac36ca68e6dd0a9ee97e73dee22
„wyrzucenie” tylko drugiego zatwierdzenia af5c7bf16e6f04321f966b4231371b21475bc4da
Jak mogę to zrobić? Z góry dziękuję Luca
źródło
Jeśli rebase jest opcją, możesz zmienić bazę i po prostu ją porzucić:
Jeśli rebase nie jest opcją, możesz ją po prostu cofnąć:
źródło
git rebase
aby go usunąć (uruchamiającrebase
w trybie interaktywnym i usuwając jego wpis).Pomimo całego uznania, jakie otrzymałem tutaj od oryginalnych odpowiedzi, nie znalazłem ich w zadowalającej odpowiedzi na pytanie. Jeśli znajdziesz się w sytuacji, w której musisz usunąć zatwierdzenie lub zbiór zatwierdzeń ze środka historii, to proponuję:
Oto informacje o Cherry Picking: Co oznacza wybieranie najlepszych zmian w git?
Oto kilka sposobów na zrobienie tego z Tortoise Git (tak jak właśnie to zrobiłem). Zdecydowanie łatwiej jest używać narzędzia GUI do tego rodzaju operacji! Cherry pick za pomocą TortoiseGit
źródło