MN
KHÁM PHÁ VÀ TRẢI NGHIỆM CÁ NHÂN
MN

1. Chức năng của lệnh Git Stash

Lệnh git stash trong Git được sử dụng để lưu tạm thời các thay đổi chưa được commit vào một khu vực riêng biệt gọi là “stash”. Điều này giúp bạn giữ cho working directory và staging area sạch sẽ, để bạn có thể chuyển sang một công việc khác mà không mất các thay đổi hiện tại. Dưới đây là một số chức năng và tùy chọn của lệnh git stash:

1.1. Lưu các thay đổi vào stash:

git stash

Lệnh này lưu tất cả các thay đổi chưa được commit (thay đổi trong working directory và staging area) vào stash và khôi phục working directory về trạng thái sạch sẽ.

1.2. Lưu các thay đổi và thêm thông tin mô tả:

git stash save "Thông tin mô tả"

Bạn có thể thêm thông tin mô tả để giúp bạn nhận diện stash sau này.

1.3. Hiển thị danh sách các stash:

git stash list

Lệnh này hiển thị danh sách các stash mà bạn đã lưu.

1.4. Áp dụng stash vào working directory:

git stash apply

Lệnh này áp dụng các thay đổi từ stash gần nhất vào working directory mà không xóa stash khỏi danh sách. Nếu bạn muốn áp dụng một stash cụ thể, bạn có thể chỉ định nó bằng cách sử dụng stash@{n}, nơi n là chỉ số của stash trong danh sách.

1.5. Áp dụng stash và xóa stash khỏi danh sách:

git stash pop

Lệnh này áp dụng các thay đổi từ stash gần nhất vào working directory và sau đó xóa stash khỏi danh sách.

1.6. Xóa stash:

git stash drop

Lệnh này xóa stash gần nhất khỏi danh sách. Bạn có thể chỉ định stash cụ thể bằng cách sử dụng stash@{n}.

Xóa tất cả các stash:

git stash clear

Lệnh này xóa tất cả các stash trong danh sách.

1.7. Lưu các thay đổi chưa được commit và các tệp không theo dõi:

git stash -u

Tùy chọn -u hoặc --include-untracked cho phép lưu các tệp không theo dõi cùng với các thay đổi đã được theo dõi.

Lưu các thay đổi bao gồm cả tệp chưa theo dõi và các tệp đã bị loại bỏ:

git stash -a

Tùy chọn -a hoặc --all cho phép lưu tất cả các tệp, bao gồm cả các tệp bị loại bỏ (ignored files).

2. Lịch sử của lệnh Git Stash

Lệnh git stash đã được giới thiệu vào Git từ những phiên bản sớm của hệ thống quản lý phiên bản này, nhưng không có một bản ghi chi tiết cụ thể về thời điểm chính xác lệnh này được thêm vào. Tuy nhiên, tôi có thể cung cấp một số thông tin tổng quan về lịch sử và sự phát triển của git stash:

  1. Ra mắt: git stash được giới thiệu trong phiên bản 1.5.0 của Git vào tháng 3 năm 2008. Đây là một tính năng quan trọng để hỗ trợ các nhà phát triển trong việc quản lý các thay đổi chưa được commit mà họ cần tạm thời gác lại.
  2. Mục đích và tính năng: Lệnh này được thiết kế để cho phép người dùng lưu các thay đổi chưa được commit (cả trong working directory và staging area) vào một khu vực tạm thời (stash) để có thể chuyển đổi nhanh chóng giữa các công việc khác mà không cần phải commit các thay đổi chưa hoàn tất. Đây là một tính năng quan trọng cho các quy trình phát triển phần mềm khi cần thử nghiệm hoặc xử lý vấn đề khác mà không muốn làm bẩn lịch sử commit chính.
  3. Tính năng mở rộng: Trong các phiên bản sau này, Git đã mở rộng các tùy chọn và khả năng của git stash. Một số cải tiến quan trọng bao gồm:
    • Tùy chọn -u: Cho phép lưu các tệp không theo dõi cùng với các thay đổi đã được theo dõi.
    • Tùy chọn -a: Cho phép lưu tất cả các tệp, bao gồm cả các tệp bị loại bỏ.
    • Tùy chọn --include-untracked: Tương tự như -u, lưu các tệp không theo dõi.
    • Tùy chọn --all: Tương tự như -a, lưu tất cả các tệp.
  4. Ứng dụng: git stash đã trở thành một công cụ thiết yếu trong công việc hàng ngày của các nhà phát triển sử dụng Git, đặc biệt là khi làm việc trên các nhánh khác nhau hoặc khi cần tạm thời gác lại một số thay đổi để xử lý các vấn đề khẩn cấp.
  5. Tài liệu và hỗ trợ: Git cung cấp tài liệu và hướng dẫn chi tiết về git stash trên trang chính thức của Git và các nguồn tài liệu khác, giúp người dùng hiểu rõ hơn về cách sử dụng và tối ưu hóa lệnh này trong quy trình phát triển của họ.