Trong Magit, sự khác biệt giữa 'stash' và 'snapshot' là gì?


17

Các hướng dẫn sử dụng Magit bao gồm hai bộ "stashing" lệnh: lệnh thấp hơn trường hợp tiết kiệm một stash , và các lệnh chữ hoa tiết kiệm một bản chụp . Sau khi tham khảo Google và Stack Overflow và git-stash(1)trang man, tôi vẫn không biết sự khác biệt là gì.

Có gì khác biệt?


1
Sự hiểu biết của tôi là stashcũng sẽ thiết lập lại (hoàn tác) các thay đổi và snapshotsẽ để lại các thay đổi trong không gian làm việc (có thể hữu ích nếu bạn sắp xếp lại các cam kết trước khi đẩy).
wvxvw

Câu trả lời:


24

Cả hai biến thể "stash" và "snapshot" đều tạo ra các đối tượng stash giống nhau. Sự khác biệt là khi bạn tạo một ảnh chụp nhanh, thì các thay đổi được lưu trữ sẽ không bị xóa khỏi các tệp trong cây làm việc và / hoặc chỉ mục. (Giống như khi bạn chụp ảnh bạn bè của bạn có một khoảng thời gian vui vẻ - điều đó cũng không khiến họ biến mất ;-)

Điều này được dự định như là một cơ chế sao lưu của các loại. Giả sử bạn đang thực hiện một số tái cấu trúc phức tạp và bạn vừa kiểm tra và mã sửa đổi vẫn xuất hiện để hoạt động nhưng bạn chưa hoàn thành. Bây giờ sẽ là thời điểm tốt để tạo ảnh chụp nhanh, để bạn có một cái gì đó để quay lại nếu bạn làm hỏng nó sau này.

Tất nhiên, bạn chỉ có thể tạo một cam kết "xóa" tạm thời, ngay trên nhánh bạn đang làm việc để thực hiện tương tự. Đó thường là những gì tôi làm.

Và bạn cũng có thể tự động hóa quá trình ghi lại tiến trình công việc bằng cách bật các chế độ Wip . Tôi có các chế độ này được kích hoạt như một mạng an toàn, nhưng tôi vẫn tạo các xác nhận wip trực tiếp trên nhánh hiện tại hoặc tạo ảnh chụp nhanh. Đó là những công việc dễ dàng hơn so với các ref lau.

Lưu ý rằng Magit đi kèm với việc thực hiện stash của riêng nó được viết bằng Elisp. Điều đó là cần thiết để thực hiện các biến thể chụp nhanh và các biến thể stash chỉ dành cho công việc và chỉ mục. Git không cung cấp bất kỳ biến thể nào trong số này.

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.