Tôi không tin rằng những thay đổi không được cam kết thực chất là một điều xấu. Bạn đề cập đến "không thể hợp nhất với chúng" - nếu bạn có một thay đổi không được cam kết đối với một số tệp và bạn kéo và cập nhật một thay đổi cho tệp đó, Mercurial sẽ bắt đầu quá trình hợp nhất giống như bạn đã cam kết, sau đó yêu cầu hợp nhất. Ý của bạn là gì?
Vì vậy, đối với những thay đổi cục bộ mà bạn chưa muốn chia sẻ với các nhà phát triển khác, bạn có hai cách tiếp cận. Đầu tiên là giữ các thay đổi trong bản sao làm việc của bạn, nhưng không đẩy chúng ra, và cách khác là đặt chúng sang một bên, ra khỏi bản sao làm việc. Việc bạn chọn tùy thuộc vào việc bạn có muốn có những thay đổi này khi bạn làm việc hay không.
Nếu bạn giữ chúng trong bản sao làm việc, các thay đổi đến sẽ hoạt động tốt, vì vậy bạn chỉ cần tránh tạo ra các thay đổi gửi đi, và điều đó có nghĩa là tránh cam kết chúng. Nếu các tệp là mới, điều đó thật dễ dàng - đừng bỏ qua hg add
chúng. Nếu chúng đã được theo dõi, thì bạn có thể loại trừ chúng ra khỏi cam kết một cách cụ thể hg commit --exclude foo.txt
. Nếu bạn có một số lượng lớn tệp để loại trừ hoặc sẽ loại trừ chúng khỏi nhiều cam kết (ví dụ: thay đổi vĩnh viễn thành tệp cấu hình cục bộ), hãy xem phần mở rộng loại trừ .
Nếu bạn chuẩn bị chuyển các thay đổi sang một bên, bạn có một bộ tùy chọn khác. Điều đơn giản nhất chỉ đơn giản là sử dụng hg diff
trên các tệp để tạo ra một bản vá mô tả chúng, mà bạn giữ ở đâu đó an toàn, sau đó hg patch --no-commit
áp dụng lại bản vá đó khi bạn muốn thay đổi trở lại. Bạn có thể làm cho điều này mượt mà hơn bằng cách cài đặt phần mở rộng giá đỡ , phần mở rộng gác mái hoặc một số họ hàng khác. Bạn cũng có thể sử dụng tiện ích mở rộng hàng đợi , nhưng đó là sử dụng búa tạ để bẻ đai ốc. Bạn thậm chí có thể chỉ thực hiện các thay đổi, sau đó cập nhật lại cho phụ huynh và cam kết các công việc khác ở đó, để lại các thay đổi trong một nhánh ẩn danh cứng đầu - hg commit -m 'temporary branch' && hg up $(hg log -r 'parents(.)' --template '{node}')
(mặc dù có thể dễ dàng thực hiện thủ công hơn!). Sau đó, bạn sẽ phải cẩn thận không đẩy thay đổi đó.