2012-11-01 41 views
8

Đó là loại giống như tôi muốn anh đào chọn tất cả các cam kết từ các chi nhánh ngoại trừ một, nhưng tôi muốn làm điều đó trong một lệnh ...Cách dễ nhất để hợp nhất tất cả trừ một thay đổi từ một nhánh trong Git là gì?

• Chúng tôi cắt một thông cáo, mà tạo ra một chi nhánh

• Bản phát hành thay đổi số phiên bản trong tất cả các poms của chúng tôi, trên nhánh thành một số và trên bản gốc đến một số khác nhau

• Tôi đã thực hiện một số thay đổi khác cho chi nhánh và muốn sao chép thay đổi trở lại trên trang chủ

• Tôi đã hợp nhất chi nhánh trở lại thành chính, trong đó brou ght mã thay đổi nhưng cũng thay đổi số phiên bản, tạo xung đột trong mỗi pom

Có cách nào dễ dàng để tôi hoàn nguyên tất cả tệp pom thành nội dung được hợp nhất trước và sau đó cam kết kết quả của quá trình hợp nhất không?

+0

Nếu tình huống của bạn là bạn muốn hợp nhất nhưng không được hợp nhất bất kỳ tệp nào xung đột, hãy xem [Tôi có thể hợp nhất các thay đổi không mâu thuẫn trong Git không?] (Http://stackoverflow.com/questions/12572530/ git-merge-ignoring-conflicts) –

+0

Có một giải pháp tốt hơn. Sử dụng trình điều khiển hợp nhất của tôi và bạn không phải làm bất cứ điều gì :-) có một cái nhìn vào câu trả lời của tôi: http://stackoverflow.com/a/26866992 –

Trả lời

12

Đây là những gì tôi đề nghị làm. Thứ nhất, làm việc kết hợp với thường xuyên nhưng không cam kết nó:

git checkout master 
git merge --no-commit <branch> 

sau đó, trở lại tất cả các tập tin pom:

for file in $(find . -name 'pom.xml'); do git checkout HEAD "$file"; done 

sau đó bạn sẽ có thể để thực hiện kết quả cuối cùng:

git commit 
+0

Làm việc tuyệt vời. Cảm ơn! Biểu đồ nhật ký trông đẹp hơn nhiều so với lựa chọn anh đào. Vẫn còn một loạt các tệp .orig và .BACKUP không được theo dõi, nhưng loại bỏ chúng là một vấn đề khác. –

+0

+1 ... tìm thường xuyên ... rất trơn ;-) –

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