Đâu là sự khác biệt giữa git reset –mixed, –soft và –hard?

Dau La Su Khac Biet Giua Git Reset Mixed Soft Va Hard



Trên Git, mọi lần xác nhận đều được liên kết với lần xác nhận trước đó và HEAD trỏ đến lần xác nhận gần đây nhất trong nhánh đang hoạt động. Lịch sử cam kết được lưu trữ dưới dạng cây cam kết. Tuy nhiên, đôi khi các nhà phát triển cần sửa đổi lịch sử cam kết. Với mục đích này, “ thiết lập lại $ git ” lệnh được sử dụng để sửa đổi lịch sử của kho lưu trữ Git và sửa các lỗi đã mắc phải.

Bài viết này sẽ giải thích ngắn gọn về sự khác biệt giữa git reset –hard, –soft và –mixed.

Đâu là sự khác biệt giữa git reset –mixed, –soft và –hard?

Git cung cấp nhiều tùy chọn đặt lại. Trên cơ sở cách họ xử lý các xác nhận, tất cả các tùy chọn khả dụng đều khác nhau. Tất cả đều sửa đổi lịch sử Git và di chuyển HEAD trở lại. Hơn nữa, họ xử lý các thay đổi khác nhau, chẳng hạn như:







  • Các ' -mềm ” tùy chọn được sử dụng với “ thiết lập lại $ git ” để giữ các tệp và trả lại các thay đổi cam kết cho chỉ mục dàn Git.
  • $ git đặt lại –hỗn hợp ” được sử dụng để hoàn tác các thay đổi cam kết và xóa tệp khỏi chỉ mục dàn dựng mà không xóa tệp đó khỏi thư mục làm việc.
  • Các ' -cứng ” tùy chọn với “ thiết lập lại $ git ” lệnh được sử dụng để xóa tất cả các thay đổi và xóa chúng khỏi thư mục làm việc cục bộ.

Hãy lấy một ví dụ để xem “ thiết lập lại $ git ” lệnh hoạt động với các tùy chọn khác nhau!



Bước 1: Chuyển đến Kho lưu trữ Git mong muốn

Đầu tiên, di chuyển đến kho lưu trữ Git mong muốn của bạn bằng cách sử dụng “ đĩa CD ' chỉ huy:



$ đĩa CD 'C:\Đi \t is_repo'





Bước 2: Tạo tệp

Bây giờ, hãy thực hiện lệnh dưới đây để tạo một tệp:

$ chạm Tệp4.txt



Bước 3: Thêm tệp vào chỉ mục dàn dựng

Sử dụng ' thêm git ” để thêm tệp mới được tạo vào chỉ mục dàn dựng:

$ thêm git Tệp4.txt

Bước 4: Cam kết thay đổi

Tiếp theo, thêm tất cả các thay đổi vào kho lưu trữ đang hoạt động bằng cách thực hiện lệnh “ cam kết git ' chỉ huy:

$ cam kết git -m 'Đã thêm tệp 4'

Bước 5: Kiểm tra nhật ký Git

Sau đó, kiểm tra lịch sử nhật ký Git để xem các cam kết mới nhất đã được thêm vào:

$ nhật ký git

Trong kết quả bên dưới, có thể thấy rằng tất cả các cam kết được thêm mới nhất đều được hiển thị và “ CÁI ĐẦU ” đang trỏ đến cam kết gần đây:

Ghi chú: Để kiểm tra vị trí trỏ hiện tại của HEAD theo cách tốt hơn, hãy thực hiện lệnh “ nhật ký git ” lệnh cùng với “ -một đường thẳng ' lá cờ:

$ nhật ký git --Trực tuyến

Đầu ra đã cho bên dưới hiển thị danh sách hàm băm SHA cam kết với các thông báo cam kết:

Bước 6: Sử dụng lệnh git reset –soft

Để hoàn nguyên các thay đổi đã thêm từ kho lưu trữ Git về chỉ mục dàn dựng, hãy sử dụng “ thiết lập lại git ” lệnh cùng với “– mềm ” và chỉ định vị trí HEAD mong muốn nơi cần di chuyển con trỏ:

$ thiết lập lại git --mềm ĐẦU~ 1

Bước 7: Kiểm tra trạng thái Git

Bây giờ, hãy xác minh vị trí hoàn nguyên của HEAD kiểm tra trạng thái kho lưu trữ Git:

$ trạng thái git

Có thể thấy rằng “ thiết lập lại git –soft ” lệnh đã trả lại các thay đổi cam kết cho chỉ mục dàn Git. Hơn nữa, “ Tệp4.txt ” tập tin hiện nằm trong chỉ mục dàn Git và cần được cam kết:

Bước 8: Kiểm tra Nhật ký Git

Để xem vị trí hiện tại của HEAD, hãy chạy lệnh đã cho cùng với “ -một đường thẳng ' Tùy chọn:

$ nhật ký git --Trực tuyến

Ở đây, HEAD đang trỏ đến “ Tệp3 ' làm:

Bước 9: Sử dụng git reset — Lệnh hỗn hợp

Để hoàn tác các thay đổi đã cam kết và xóa các tệp khỏi khu vực tổ chức mà không xóa chúng khỏi thư mục làm việc, hãy thực hiện lệnh “ $ git đặt lại –hỗn hợp ” lệnh cùng với vị trí HEAD được yêu cầu của cam kết:

$ thiết lập lại git --Trộn ĐẦU~ 1

Bước 10: Kiểm tra trạng thái Git

Xem các thay đổi mới được thêm vào bằng cách kiểm tra trạng thái kho lưu trữ Git:

$ trạng thái git

Có thể quan sát thấy rằng các thay đổi cam kết đã chỉ định sẽ bị xóa khỏi khu vực tổ chức. Tuy nhiên, chúng được đặt trong khu vực làm việc:

Bước 11: Kiểm tra Nhật ký Git

Kiểm tra lịch sử nhật ký tham chiếu kho lưu trữ Git cùng với hàm băm SHA:

$ nhật ký git --Trực tuyến

Bước 12: Sử dụng git reset — hard Command

Để xóa các thay đổi đã thêm khỏi thư mục làm việc cục bộ Git, hãy thực thi lệnh “ $ git đặt lại –cứng ' chỉ huy:

$ thiết lập lại git --cứng ĐẦU~ 1

Bước 13: Xác minh con trỏ HEAD đã hoàn nguyên

Để xác minh con trỏ HEAD, trở lại vị trí đã chỉ định, hãy chạy lệnh “ nhật ký git ' chỉ huy:

$ nhật ký git --Trực tuyến

Đầu ra bên dưới cho thấy HEAD đang trỏ đến “ Đã thêm tệp1 ' làm:

Bước 14: Kiểm tra trạng thái Git

Để xem các thay đổi đã thêm, hãy kiểm tra trạng thái Git:

$ trạng thái git

Có thể thấy rằng chúng tôi không có bất kỳ thay đổi nào đang theo dõi và đang chờ xử lý của “ Tệp2.txt ' tập tin. Do đó, File2.txt đã bị xóa hoàn toàn:

Bước 15: Xác minh Danh sách Nội dung Kho lưu trữ

Để xác minh danh sách nội dung của kho lưu trữ, hãy chạy lệnh “ ls ' chỉ huy:

$ ls

Như bạn có thể thấy, ' Tệp2.txt ” tập tin không tồn tại trong thư mục hiện tại:

Chúng tôi đã giải thích sự khác biệt giữa các tùy chọn git reset –mixed, –soft và –hard.

Phần kết luận

Các ' thiết lập lại git ” Lệnh được sử dụng để đặt lại các thay đổi, sửa đổi lịch sử của kho lưu trữ Git và sửa lỗi. Các ' thiết lập lại git –soft ” lệnh giữ các tệp và trả lại các thay đổi cam kết cho khu vực tổ chức Git. Ngược lại, “ thiết lập lại git –hỗn hợp Lệnh hoàn tác các thay đổi cam kết và xóa tệp khỏi chỉ mục dàn mà không xóa nó khỏi thư mục làm việc. Để xóa tất cả các thay đổi và xóa chúng khỏi khu vực làm việc của Git, lệnh “ thiết lập lại git –cứng ” lệnh có thể được sử dụng. Bài viết này đã minh họa sự khác biệt giữa git reset –mixed, –soft và –hard.