2013-06-12 24 views
21

Tôi muốn làm một cái gì đó tương tự như git rebase nhưng không thu hẹp các cam kết song song.git áp dụng các thay đổi từ một cam kết lên một nhánh khác

Hãy nói rằng tôi có cam kết sau đây:

B (bar) 
/
A-C-D (foo) 

Bây giờ tôi muốn để có những thay đổi mà D giới thiệu với C trong ngành foo, và áp dụng chúng đến B trong thanh chi nhánh. để tôi kết thúc với những điều sau:

B-E (bar) 
/
A-C-D (foo) 

Trường hợp chênh lệch giữa cam kết B và E bằng chênh lệch giữa cam kết C và D. Điều này có khả thi không? Có cách nào để làm điều đó mà không cần tạo bản vá không?

Trả lời

32

Có:

git checkout -b mergebranch B 
git cherry-pick D 
0

Nếu cam kết cuối cùng trên cành mà bạn muốn cherry-pick ra khỏi (foo trong ví dụ) là một hợp nhất cam kết, bạn có thể trỏ vào cụ thể cam kết cherry chọn bằng cách sử dụng git cherry-pick branchname~1 để nhận được cam kết là phụ huynh của hợp nhất.

Các vấn đề liên quan