2012-03-14 33 views
11

git rebase để lại các điểm đánh dấu xung đột trong tệp; một cái gì đó như:Git có thể áp dụng các điểm đánh dấu xung đột để nội tuyến như git rebase không?

<<<<<<< HEAD 
Whatever line + context is different from the previous commit 
======= 
Whatever line + context is different from the commit being applied 
>>>>>>> new version, new branch:app/views/common/version.txt 

Khi tôi sử dụng git áp dụng để áp dụng bản vá được tạo bằng git format-patch, nó sẽ không để lại bất kỳ tệp nào được sửa đổi theo mặc định. Tôi có thể cho nó - để cho nó tạo ra các file .rej cho những người có xung đột không thể giải quyết được, nhưng thực sự, tôi muốn nó sửa đổi các tập tin và để lại mọi trạng thái mà git rebase làm như vậy tôi có thể mở tập tin, hợp nhất thủ công nó, và sau đó git thêm nó và yêu cầu git áp dụng để tiếp tục. Có cách nào để làm điều này mà tôi không biết?

Trả lời

6

Đối với tôi các công việc sau:

git init 
seq 1 30 > file 
git add file 
git commit -m 1-30 
sed -i '13a13.4' file 
git commit -m 'add 13.4' file 
git format-patch -1 
git reset --hard HEAD^ 
sed -i 13d file 
git commit -m 'remove 13' file 
git am -3 0001-add-13.4.patch 

Sau file có dấu hiệu xung đột. Đó là sử dụng git am -3 thay vì git apply.

+0

Hmmm - thú vị mà dường như thực sự làm những gì tôi muốn. Tôi nghĩ rằng git được sử dụng git áp dụng - có lẽ nó sử dụng một API nội bộ mà không thể truy cập thông qua các tùy chọn dòng lệnh của git apply. Cảm ơn! – kcstrom

3

Sử dụng tùy chọn với ba cách hợp nhất:

git apply -3 0001-patch.patch 
Các vấn đề liên quan