Các thủ thuật hữu ích mà bạn có thể không biết về Git stash

Tác giả: Srebalaji Thirumalai

Nếu đã sử dụng Git trong một khoảng thời gian ắt hẳn bạn đã sử dụng Git stash. Đây là một trong những tính năng hữu ích của Git.

Dưới đây là một số mẹo hữu ích mà tác giả đã rút ra được từ Git stash tuần trước.

Git stash save

Lệnh này giống như Git stash nhưng đi kèm với các tùy chọn khác. Tôi sẽ đưa ra một số điều quan trọng trong bài viết này.

Git stash cùng với message

git stash save “Your stash message”.

Lệnh trên sẽ đưa ra cùng với một message. Hãy cùng nhau xem nó hữu ích như thế nào.

Ẩn các tệp không theo dõi

Bạn cũng có thể ẩn các tệp không theo dõi.

git stash save -u
or
git stash save --include-untracked

Git stash list

Khi bạn dùng Git stash hoặc lưu Git stash, Git thực sự sẽ tạo một đối tượng Git với một số tên và sau đó lưu nó vào repo.

Vì vậy, nó có nghĩa là bạn có thể xem danh sách các “stash” bạn tạo ra.

git stash list

Hãy cùng xem ví dụ dưới đây:

git

                                                   ví dụ về git stash list 

Bạn có thể xem danh sách các stash mới nhất được tạo ra ở đầu trang.

Và bạn có thể thấy rằng phần trên cùng được đưa ra một thông báo tùy chỉnh (sử dụng Git stash lưu “message”).

Git stash apply

Lệnh này sẽ chiếm phần trên cùng trong stack và apply nó vào repo. Trong trường hợp này là stash@{0}

Nếu bạn muốn áp dụng một số stash khác, bạn có thể chỉ định stash id.

Đây là một ví dụ:

git stash apply stash@{1}

Git stash pop

Lệnh này rất giống với stash apply nhưng nó xóa stash từ stack sau khi nó được áp dụng.

Hãy cùng xem ví dụ:

git

Ví dụ về Git stash pop

Như bạn có thể thấy phần trên cùng đã bị xoá và stash@{0} được cập nhật với phần cũ.

Nếu bạn muốn một stash cụ thể để “pop”, bạn có thể chỉ định stash id.

git stash pop stash@{1}

Git stash show

Lệnh này chỉ ra bản tóm tắt của các stash diff. Lệnh trên chỉ xem xét về stash mới nhất.

Dưới đây là ví dụ:

git

Ví dụ về Git stash show

Nếu bạn muốn xem full diff, bạn có thể sử dụng

git stash show -p

Tương tự như các lệnh khác, bạn cũng có thể chỉ định stash id để có được tóm tắt diff.

git stash show stash@{1}

Git stash branch <name>

Lệnh này tạo ra một nhánh mới với một stash hiện thời, và sau đó xóa các stash mới nhất (như stash pop).

Nếu bạn cần một stash cụ thể bạn có thể chỉ định stash id.

git stash branch <name> stash@{1}

Điều này thật sự hữu ích khi bạn gặp rắc rối sau khi đã áp dụng stash vào phiên bản mới nhất của chi nhánh.

Git stash clear

Lệnh này xóa tất cả các stash được tạo ra trong repo này và có thể không thể revert.

Git stash drop

Lệnh này sẽ xoá stash mới nhất khỏi stack, nhưng hãy dùng nó cẩn thận, có thể sẽ khó để revert.

Bạn cũng có thể chỉ định stash id.

git stash drop stash@{1}

Bài viết gốc được đăng tải tại Freecodecamp

  Một vài câu hỏi thông dụng về Git thường gặp