Tôi đang sử dụng Git-Svn để tương tác với kho Svn tại nơi làm việc và dường như tôi không thể tìm cách giải quyết xung đột hiệu quả cho cuộc sống của tôi. Tôi đã đọc các câu hỏi khác về chủ đề này, nhưng rõ ràng tôi cần một cái gì đó thậm chí còn khắc phục nhiều hơn bởi vì tôi luôn luôn dường như kết thúc trong một số loại vòng lặp vô tận. Tôi rebase, sử dụng mergetool (meld) để giải quyết xung đột của tôi và, khi tôi nhận được đến cuối tất cả những điều đó, tôi cố gắng làm một dcommit và tôi nhận được một cuộc xung đột hợp nhất trong lỗi cam kết.Giải quyết các xung đột Git Svn
Tôi biết điều này giống như một bản sao, nhưng sự thất vọng khiến tôi hỏi lại, với một số chi tiết rất cụ thể về cách tôi sẽ thực hiện điều này để hy vọng ai đó có thể cho tôi biết chính xác quy trình của tôi bị hỏng.
thiết lập của tôi:
Tôi có một chi nhánh ở xa (svn/trunk), một chi nhánh địa phương (thân cây) và một chi nhánh địa phương mà tôi thường làm việc trong (làm việc-cốp). thân cây đã được kiểm tra từ svn/thân cây và thân cây làm việc đã được kiểm tra ra từ thân cây.
Dưới đây là những gì tôi đã làm:
- On thân của tôi,
git svn rebase
(trả về xung đột) git mergetool
- [giải quyết xung đột cho tập tin đó]
- Lưu tập tin sáp nhập từ meld và đóng meld.
git add .
git rebase --continue
- [rửa, lặp lại]
- Nếu tôi nhận được một thông báo hỏi tôi đã sử dụng
git add
, tôigit rebase --skip
Khi tôi nhận được để kết thúc tất cả những thay đổi được báo cáo, tất cả mọi thứ chỉ là loại dừng lại và tôi đoán có lẽ tôi không chắc chắn phải làm gì vào thời điểm này. Git cho thấy không có gì để được cam kết và tôi dường như trở lại trên thân cây. Git sau đó cho phép tôi dcommit, nhưng nếu tôi cố gắng một rebase ngay sau đó, tôi kết thúc lại giải quyết các cuộc xung đột tôi chỉ giải quyết.
Rõ ràng là một phần quan trọng tôi đang thiếu ở đây, nhưng tôi chỉ không nhìn thấy nó và nó gây ra rất nhiều vấn đề và thất vọng. Sáp nhập có thể dễ dàng trong Git, nhưng tôi chắc chắn không tìm được điều đó.
Cảm ơn.
CẬP NHẬT: Chỉ muốn đưa ra bản cập nhật nhanh để mô tả quy trình làm việc của tôi trong trường hợp đó là một phần (hoặc tất cả) của sự cố.
Để bắt đầu, sau khi nhân bản kho lưu trữ của tôi với tiền tố svn/
, tôi có chi nhánh từ xa svn/trunk
từ xa của mình. Cho rằng:
- I
git co -b trunk svn/trunk
để kiểm tra điều khiển từ xa của tôi với chi nhánh địa phương. - I
git co -b working-trunk
để tạo một nhánh đang hoạt động mà tôi sử dụng để tạo thêm một mức phân tách sao cho địa chỉ nội bộ của tôi luôn có thể phản chiếu thân từ xa của tôi. - Tôi xóa chi nhánh chính mặc định (khi làm việc với svn, tôi thấy dễ nghĩ hơn về "thân cây" hơn là "chính").
Khi tôi có tất cả các chi nhánh của tôi, công việc điển hình của tôi trông như thế này:
- On lao động thân, tôi thực hiện thay đổi của tôi và cam kết họ.
- I
git co trunk
và thực hiệngit svn rebase
. - Giả sử mã mới đã được rebased, I
git rebase working-trunk
. git co working-trunk
git merge trunk
git rebase trunk
git co trunk
git merge working-trunk
git svn dcommit
Đó là một rất nhiều bước, tôi biết, nhưng đó là những gì mọi người ở đây và các nơi khác đã khuyến khích. Có thể lỗ hổng chết người của tôi ở đâu đó trong quá trình đó?
Xin cảm ơn một lần nữa.
Đã trả lời bạn chọn (Jistin) giải quyết vấn đề? – inger