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à gì?

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. 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.

2.2. 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. 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}

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. 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!

Tìm hiểu thêm: Git Commit là gì?

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
Hướng dẫn chi tiết cách push code lên Git

Hướng dẫn chi tiết cách push code lên Git

Có lẽ các bạn theo đuổi lĩnh vực IT đã quen thuộc với Git và GitHub rồi đúng không nhỉ? Tuy nhiên, Got It nhận thấy, một vài bạn đọc theo dõi blog vẫn còn mơ hồ, hoặc chưa biết cách để push code lên Git. Vậy thì hôm nay, chúng mình sẽ mang đến […]
Hướng dẫn cách tạo branch trong Git

Hướng dẫn cách tạo branch trong Git

Làm việc trực tiếp trong branch (nhánh) chính của một repository trên GitHub sẽ vô cùng nguy hiểm. Bởi lẽ, bạn sẽ có nguy cơ đưa những dòng code lỗi (bug) vào project đó mà không thông qua việc review code. Vì vậy, để tránh điều này xảy ra, bạn nên tạo một branch mới […]
Git fetch là gì? Phân biệt git fetch và git pull

Git fetch là gì? Phân biệt git fetch và git pull

Rất nhiều các bạn đang làm việc trong lĩnh vực IT thắc mắc về cách phân biệt giữa git fetch và git pull. Vậy git fetch là gì? Câu lệnh này hoạt động như thế nào? Và đâu là sự khác biệt giữa hai lệnh git fetch và git pull? Hãy cùng Got It tìm […]
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ì? Nó đượ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 cái […]
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ì […]