2013-04-17 33 views
7

Tôi có hai chi nhánh Z với một số thay đổi và M với một số thay đổi xung đột. Tôi muốn hợp nhất thay đổi đầu tiên trên Z thành M. Khi tôi cố gắng xem những thay đổi nào vẫn còn ở ngoài đó. (Thực tế, có một vài thay đổi nhiều nhưng điều này đã cho thấy vấn đề)cherry-hái với git với một cuộc xung đột

$ git checkout M 
$ git cherry M Z 
+ 153c2f840f2192382be1fc435ceb069f0814d7ff 
+ 4a7979d5dd526245b51769db21acf4c286825036 

$ git cherry-pick 153c2f840f2192382be1fc435ceb069f0814d7ff 
error: could not apply 153c2f8... add Z 
hint: after resolving the conflicts, mark the corrected paths 
hint: with 'git add <paths>' or 'git rm <paths>' 
hint: and commit the result with 'git commit' 
• (M|CHERRY-PICKING) $ git st 
# On branch M 
# Unmerged paths: 
# (use "git add/rm <file>..." as appropriate to mark resolution) 
# 
# both modified:  README.txt 
# 
no changes added to commit (use "git add" and/or "git commit -a") 
• (M|CHERRY-PICKING) $ vim README.txt 

Tôi cố định cuộc xung đột ở đây

• (M|CHERRY-PICKING) $ git add README.txt 
• (M|CHERRY-PICKING) $ git ci -m'cherry picked' 
    [M dc5de35] cherry picked 
    1 file changed, 1 insertion(+), 1 deletion(-) 
• (M) $ git cherry M Z 
+ 153c2f840f2192382be1fc435ceb069f0814d7ff 
+ 4a7979d5dd526245b51769db21acf4c286825036 

Vì vậy, sau khi tôi cam kết thay đổi nó vẫn nghĩ rằng không phải thay đổi này cherry- chọn Tôi đã mong đợi:

- 153c2f840f2192382be1fc435ceb069f0814d7ff 
+ 4a7979d5dd526245b51769db21acf4c286825036 

Làm cách nào để biết một tuần kể từ bây giờ tôi đã hợp nhất 153c2f? Làm thế nào tôi có thể thực hiện việc hái hoa anh đào theo cách mà nó sẽ biết về sự hợp nhất đó?

Trả lời

3

Làm sao bạn biết?

Không bằng git cherry vì nó chỉ nhận cam kết có cùng git patch-id (see man page), ví dụ: không những nơi bạn đã phải giải quyết xung đột không tầm thường.

Vì vậy, bạn sẽ phải biết bằng cách xem thông báo cam kết.

Việc sáp nhập trong tương lai sẽ biết như thế nào về lựa chọn anh đào?

Vì bạn đã giải quyết xung đột khi bạn áp dụng thay đổi đã chọn, nên cam kết đó sẽ hợp nhất một cách nhỏ nhặt khi bạn hợp nhất toàn bộ nhánh trong tương lai.

Nếu bạn đang thực sự lo ngại về git nhớ cách bạn giải quyết các xung đột, bạn có thể kích hoạt tính năng git rerere:

git config --global rerere.enabled true 
Các vấn đề liên quan