Tôi vô tình thực hiện 10 cam kết trên nhánh "kiểm tra" khi tôi định cam kết chúng trên nhánh "master". Các cam kết khác trên nhánh "testing" là rác, vì vậy tôi không muốn hợp nhất nó với "master". Thay vào đó, tôi chỉ muốn phát lại 10 commit mới nhất trên master.Phát lại Nit cam kết cuối cùng trên một chi nhánh khác
Trả lời
- git checkout chủ
- git whatchanged thử nghiệm
- git cherry-pick _________
?
Việc rebase nên thực hiện.
git rebase -p --onto master testing~10 testing
Điều này sẽ sao chép mười lần thử nghiệm cuối cùng để kiểm tra và làm cho thử nghiệm mới (thử nghiệm cũ sẽ là trẻ mồ côi). Sau đó, bạn có thể hợp nhất tổng thể để thử nghiệm dưới dạng tua đi nhanh.
git checkout master
git merge testing
Đã sử dụng câu trả lời của Ron trước khi đăng. –
Có thể đáng chú ý rằng điều này lá kiểm tra tại cùng một điểm như chủ, để lại các 'rác' cam kết mồ côi. Điều này có thể hoặc có thể không phải là một điều tốt. Một khả năng khác sẽ là git checkout master; git reset --hard testing; git rebase --onto HEAD @ {1} HEAD ~ 10 –
@CharlesBailey Bạn đang định nhấn git flog gì? – Fredrick
Như đã nói trong ý kiến, câu trả lời -inspired rebase
là bỏ rơi 'rác' cam mồ côi.
Chỉ cần sử dụng các công cụ đơn giản:
git checkout master
git merge testing
git checkout testing
git reset --hard HEAD~10 # Go back 10 commits (*1)
git checkout master
(* 1) Bạn chỉ có "mất" cam kết từ các chi nhánh testing
, vì bạn sẽ có những cam kết trong master
nhờ vào merge
.
Chỉ cần một fyi - cherry-pick sẽ chỉ thực hiện một cam kết tại một thời điểm, vì vậy bạn sẽ phải thử nghiệm cherry-picket ~ 9 sau đó thử nghiệm ~ 8 rồi ... thử nghiệm. Đó là lý do tại sao tôi thích cách tiếp cận rebase mà Talljoe gợi ý ... tất nhiên kết quả là như nhau. Trong thực tế, nếu bạn thực hiện rebase tương tác, git sẽ thực sự sử dụng lựa chọn cherry dưới mui xe. –
@PatNotz 'git cherry-pick' hiện có thể thực hiện nhiều lần commit (ví dụ:' git cherry-pick testing ~ 10..testing'). –
Bạn không bao giờ nên sử dụng 'cherry-pick'. Đọc [bài viết này] (http://www.draconianoverlord.com/2013/09/07/no-cherry-picking.html) để biết thêm thông tin. – Tim