8 tính năng hữu ích của Git Stash

Trong quá trình làm việc với Git Tools, chắc hẳn các bạn đều đã nghe đến khái niệm Git Stash. Vậy nó là gì? Làm thế nào để công việc đơn giản hơn với công cụ này? Hãy cùng Got It Vietnam khám phá qua bài viết sau nhé!

1. Git Stash là gì?

Hãy tưởng tượng bạn đang code hăng say giữa chừng cho một branch của mình trên Git. Đột nhiên xuất hiện một vấn đề gì đó ở những phần workload cũ khiến bạn phải tạm dừng công việc hiện tại và quay lại để sửa gấp.

Để bắt đầu giải quyết vấn đề, bạn cần tạo một branch mới để sửa lại. Với dự án đang dở dang, các lệnh git cơ bản sẽ cho bạn hai lựa chọn:

  • Sử dụng lệnh git reset --hard để xoá những thay đổi đã được commit của bạn.
  • Ghi lại công việc chưa hoàn tất của bạn và biến nó thành một commit mới

Tùy chọn đầu tiên làm mất tất cả công việc của bạn, trong khi cái sau dẫn đến một phần commit không có ý nghĩa. Không có tình huống nào có thể thoả mãn nhu cầu của bạn.

Lúc này, Git Stash phát huy tác dụng của nó, giúp bạn vừa có thể quay lại workload cũ để sửa chữa mà vẫn bảo lưu những gì bạn đang làm ở branch hiện tại. Có thể hiểu nó giống như một nút tạm dừng trong quá trình code của bạn.

Git Stash là công cụ hữu hiệu với các nhà phát triển
Git Stash là gì? Nguồn: Unsplash

2. 8 tính năng hữu ích trong lập trình

Theo trang Atlassian.com, Git Stash có rất nhiều chức năng hữu ích, tuy nhiên trong bài viết này sẽ đề cập tới 8 tính năng hữu ích nhất của Git Stash. Chúng bao gồm:

  1. Git stash save
  2. Git stash list
  3. Git stash apply
  4. Git stash pop
  5. Git stash show
  6. Git stash branch <name>
  7. Git stash clear
  8. Git stash drop

Hãy cùng Got It Vietnam tìm hiểu những điều cơ bản nhất nhé!

2.1. Git Stash Save – Lưu thay đổi của bạn

Thông thường trong nhiều trường hợp, lệnh Git Stash cũng tương đồng với Git Stash Save. Tuy nhiên Git Stash Save có nhiều phương án hơn, giả dụ như bạn muốn lưu thay đổi của mình với thông điệp: “Got It Vietnam”, bạn có thể dùng lệnh sau:

git stash save "Got It Vietnam"

Thông điệp này sẽ hữu ích nếu bạn có nhiều stash và sau này bạn muốn xem lại những stash cụ thể nào đó.

Ngoài ra, bạn có thể sử dụng lệnh này để lưu lại những file được tạo mới và chưa từng được add (untracked files):

git stash save -u

hoặc

git stash save --include-untracked

Ví dụ bạn muốn thay đổi code so với commit A, tuy nhiên sau 1 thời gian code thì thấy không hiệu quả và muốn reset lại trạng thái các file về commit A, với điều kiện là các files chưa được ghi vào staged thì lệnh git stash save sẽ rất hữu dụng với bạn.

Các tính năng hữu ích của Git Stash
Git Stash Save và các công cụ hữu hiệu. Nguồn: Unsplash

2.2. Git stash list – Xem những stash đã lưu

Khi các bạn Stash Save thì commit của bạn sẽ được lưu mặc định vào một Repo. Bạn có thể stash nhiều lần cũng được và khi muốn xem danh sách những stash của mình thì bạn có thể gõ lệnh sau đây:

git stash list

Kết quả có thể sẽ được hiện như sau:

stash@{0}: WIP on master: 4e22905 abc 1865891265912 stash@{1}: On master: Got It Vietnam
(END)

Ở trên, bạn đã lưu Stash với message là Got It Vietnam nên trong Stash List của bạn cũng sẽ hiện như vậy, rất thuận tiện để tracking.

Nếu muốn xem cả nội dung của từng thay đổi thì thêm option -p

git stash list -p

2.3. Git stash apply và Git stash pop – Apply stash

Khi muốn apply lại thay đổi từ stash lần 1 bạn có thể sử dụng lệnh sau:

git stash apply stash@{1}

Apply chính là việc bạn lấy stash chỉ định kia để bạn apply vào code của mình. Nếu bạn muốn lấy stash 2 thì rất đơn giản, chỉ cần thay ID ở bên trong ngoặc là được. Tương tự, nếu bạn không có stash ID thì mặc định stash trên cùng, stash{0} sẽ được mở.

Git Stash Pop cũng tương tự, chỉ khác là nó sẽ xoá toàn bộ stash của bạn sau khi bạn apply xong. Cách gõ lệnh tương tự như với Apply:

git stash pop stash@{1}

8 tính năng hữu ích với các kỹ sư IT
8 tính năng hữu ích với các kỹ sư IT. Nguồn: Unsplash

2.4. Git Stash Show

Dòng lệnh này sẽ cho các bạn xem tóm tắt thay đổi của bộ stash diff. Tuy nhiên, stash show sẽ chỉ hiện tóm tắt stash diff của bộ stash trên cùng. Nếu muốn xem thêm đầy đủ, các bạn thêm -p như stash list là được. Và dĩ nhiên là tương tự với việc các bạn muốn xem của stash nào thì bạn nhập ID của Stash đó vào.

2.5. Git stash clear hoặc git stash drop – xoá những thay đổi trong stash

Hai dòng lệnh có mục đích khá giống nhau: Được sử dụng để xoá đi những thay đổi trong stash. Tuy nhiên, Câu lệnh Clear sẽ được dùng để xoá toàn bộ stash có trong Repo trong khi đó, câu lệnh Drop chỉ được dùng để xoá stash ngay trên đầu mà thôi. Các bạn nên cẩn thận trước khi nhập hai lệnh này vì có thể sẽ không đảo ngược lại được. Tương tự với các cú pháp như trên, các dòng lệnh được viết như sau:

git stash clear

Nếu chỉ muốn xoá stash thứ n

git stash apply stash{n}

git stash clear stash{n}

Hy vọng qua bài viết này, Got It Vietnam có thể cung cấp cho các bạn một vài thông tin hữu ích về Git Stash để phục vụ công việc!

Nếu bạn quan tâm, hãy xem các vị trí đang tuyển dụng của Got It tại: bit.ly/gotit-hanoi và đọc thêm về quy trình tuyển dụng tại đây.

https://d1iv5z3ivlqga1.cloudfront.net/wp-content/uploads/2021/04/29235048/1_QAG9RXQyyMAY7i9OYo84FA.png
Got It Vietnam
February 09, 2021
Share this post to:
Tags:
git
0 Comments
Inline Feedbacks
View all comments
Các bài viết liên quan
Git và GitHub — liệu bạn đã thật sự biết cách sử dụng?

Git và GitHub — liệu bạn đã thật sự biết cách sử dụng?

Biến Git và GitHub trở thành công cụ đắc lực cùng Software Engineer nhà Got It!
Git Pull là gì? Mô hình hoạt động của lệnh Git Pull

Git Pull là gì? Mô hình hoạt động của lệnh Git Pull

Vì lệnh Git Fetch và Git Merge được sử dụng thường xuyên nên Git đã kết hợp hai lệnh này thành một lệnh đặc biệt gọi là Git Pull. Vậy Git Pull là gì? Git Pull được sử dụng như thế nào? Trong bài viết này, Got It sẽ mang đến cho các bạn một […]
Git Merge là gì? Những kiến thức cơ bản về Git Merge

Git Merge là gì? Những kiến thức cơ bản về Git Merge

Hợp nhất là một quá trình rất quan trọng khi làm việc với Git. Trong bài viết này, chúng ta sẽ thảo luận về lệnh hợp nhất Git Merge rất quen thuộc trong Git. Nếu bạn là người mới bắt đầu sử dụng Git và đang muốn hiểu quy trình hợp nhất trong Git, thì […]
Git Commit là gì? Git Commit được sử dụng như thế nào?

Git Commit là gì? Git Commit được sử dụng như thế nào?

Trong Git có một lệnh cho phép các lập trình viên ghi những thay đổi của dự án một cách dễ dàng gọi là Git Commit. Vậy chính xác Git Commit là gì? Git Commit được sử dụng như thế nào? Hãy cùng Got It tìm hiểu trong bài viết dưới đây nhé! Mục lụcGit […]
8 tính năng hữu ích của Git Stash

8 tính năng hữu ích của Git Stash

Trong quá trình làm việc với Git Tools, chắc hẳn các bạn đều đã nghe đến khái niệm Git Stash. Vậy nó là gì? Làm thế nào để công việc đơn giản hơn với công cụ này? Hãy cùng Got It Vietnam khám phá qua bài viết sau nhé! Mục lục1. Git Stash là gì?2. […]
Git Rebase là gì? Khi nào nên sử dụng Git Rebase?

Git Rebase là gì? Khi nào nên sử dụng Git Rebase?

Hai khái niệm làm nhiều kỹ sư IT đau đầu và khó phân biệt nhất chắc chắn là Git Rebase và Git Merge. Vậy Git Rebase là gì và khi nào nên sử dụng? Tất cả những câu hỏi này sẽ được giải đáp trong bài viết này của Got It Vietnam. Mục lục1. Git […]