Có bất kỳ nhược điểm nào khi bật git rerere không?


107

Tôi đã đọc nhiều thứ khác nhau về tính năng rerere của git và tôi đang xem xét việc kích hoạt nó. Nhưng tôi chưa thấy ai đề cập đến bất kỳ vấn đề nào có thể xảy ra khi sử dụng nó. Tôi phải cho rằng có một nhược điểm, hoặc nó có thể được bật theo mặc định. Vì vậy, có bất kỳ nhược điểm nào khi bật rerere? Nó có thể gây ra những vấn đề tiềm ẩn nào mà nếu không sẽ xảy ra?


Khi tính năng rerere tự động được bật và áp dụng độ phân giải trước đó, nó có hiển thị thông báo không? Nếu vậy, nó trông như thế nào? TIA!
joeytwiddle

1
@joeytwiddle, theo bài viết này , nó sẽ có dạng,Resolved 'index.html' using previous resolution.
sampablokuper

Câu trả lời:


69

Nếu bạn thực hiện hợp nhất không đúng, sau đó loại bỏ nó, sau đó thực hiện lại "cùng" hợp nhất, nó sẽ không chính xác một lần nữa. Tuy nhiên, bạn có thể quên một độ phân giải đã ghi. Từ tài liệu :

git rerere forget <pathspec>

Điều này đặt lại các giải pháp xung đột mà rerere đã được ghi lại cho xung đột hiện tại <pathspec>.

Hãy cẩn thận để sử dụng nó trên các đường dẫn cụ thể; bạn không muốn xóa bỏ tất cả các độ phân giải đã ghi của mình ở mọi nơi. ( forgetkhông có đối số nào không được dùng nữa để giúp bạn không làm điều này, trừ khi bạn nhập git rerere forget .để yêu cầu rõ ràng.)

Nhưng nếu bạn không nghĩ làm điều đó, bạn có thể dễ dàng đưa việc hợp nhất không chính xác đó vào lịch sử của mình ..


13
Đây là lý do tại sao rererevẫn để lại các tệp có xung đột được đánh dấu là chưa hợp nhất, vì vậy bạn phải thêm chúng theo cách thủ công (hy vọng sau khi kiểm tra / thử nghiệm chúng) trước khi thực hiện. Bạn luôn có thể sử dụng git checkout -m <path>để kiểm tra phiên bản bị xung đột ban đầu và thực hiện lại độ phân giải nếu phải.
Cascabel

1
Điều đó sẽ có ý nghĩa! Có vẻ như bạn cần một bí danh mới.
Cascabel

5
Tôi nghĩ đây có lẽ là vấn đề chính. Bật rerere thêm một cách nữa để lỗi đột nhập bất ngờ. Một hợp nhất mà bạn hủy bỏ (hoặc đúng hơn là hoàn tác bằng cách xóa nó khỏi lịch sử) vẫn có thể quay lại ám ảnh bạn sau này. Về cơ bản, nó giới thiệu một cơ chế lịch sử thứ hai trực giao với biểu đồ lịch sử thực tế.
Ryan C. Thompson

3
@RyanThompson Hợp nhất bị hủy bỏ không ảnh hưởng đến rerere. (Tôi thường ước họ làm như vậy — đôi khi tôi đã hủy hợp nhất vì tôi thiết lập sai, sau đó cần phải thực hiện các giải pháp chính xác giống như khi tôi thiết lập đúng.) Đối với việc xóa hợp nhất khỏi lịch sử, tại sao bạn lại làm việc đó đi?
Marnen Laibow-Koser

40

Như JC Hamano đã đề cập trong bài báo của anh ấy " Fun with rerere "

  • Đọc lại nhớ cách bạn đã chọn để giải quyết các vùng xung đột;
  • Rerere cũng nhớ cách bạn đã chạm vào bên ngoài các khu vực xung đột để điều chỉnh các thay đổi ngữ nghĩa;
  • Đọc lại có thể sử dụng lại độ phân giải trước đó mặc dù bạn đã hợp nhất hai nhánh có nội dung khác với nhánh bạn đã giải quyết trước đó .

Ngay cả những người đã sử dụng rerere trong một thời gian dài thường không nhận thấy điểm cuối cùng.

Vì vậy, nếu bạn kích hoạt rererenội dung quá rộng, bạn có thể kết thúc với độ phân giải hợp nhất đáng ngạc nhiên hoặc khó hiểu vì điểm cuối cùng.


15
Những kẻ xung đột vẫn phải phù hợp với nhau; khá khó để đưa ra kết quả dương tính giả.
Cascabel

3

Tôi đã kích hoạt rerere trên toàn cầu. Tôi thực sự không nhận thấy bất kỳ vấn đề nào, và nó thường giúp cuộc sống của tôi dễ dàng hơn.


4
Ở đây cũng vậy. Không có vấn đề gì trong hơn 2 năm sử dụng.
Andrey Tarantsov 14/09/12

3

Tôi đã chọn một cam kết (bằng gitk) chỉ chứa một tệp nhị phân. Cherrypick đã thất bại do xung đột (điều này xảy ra là điều đương nhiên) và tôi đã giải quyết xung đột bằng cách giữ lấy cherry. Sau đó, tôi đã rất ngạc nhiên khi phát hiện ra trong một nhánh được phục hồi khác mà các hạt nhân của tôi không hoạt động - chỉ để phát hiện ra chúng không được đưa vào cơ sở chính như (tôi suy đoán) giải quyết xung đột tự động. Vì vậy, đây là trường hợp duy nhất tôi gặp (đã bật rerere) chạy vào hành vi phản trực giác (mặc dù tôi chắc chắn hoàn toàn nhất quán).


1
Chữa bệnh:git rerere forget path/to/compiled/bin.dll
Mr_and_Mrs_D

Trong trường hợp ban đầu, tôi nhận thấy xung đột không phải do hái anh đào mà là do phục hồi nhưng tôi không nghĩ nó tạo ra sự khác biệt
Mr_and_Mrs_D
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.