Hoạt động Stash trong Git
Giả sử bạn đang thực hiện một tính năng mới của sản phẩm của bạn. Code của bạn đang trong tiến trình thực hiện thì đột nhiên một vị khách đến thăm. Bởi vì điều này, bạn phải đi ra ngoài trong một vài giờ. Bạn không thể commit phần code này và cũng không thể quăng nó đi đâu những thay đổi của ...
Giả sử bạn đang thực hiện một tính năng mới của sản phẩm của bạn. Code của bạn đang trong tiến trình thực hiện thì đột nhiên một vị khách đến thăm. Bởi vì điều này, bạn phải đi ra ngoài trong một vài giờ. Bạn không thể commit phần code này và cũng không thể quăng nó đi đâu những thay đổi của bạn. Vì thế bạn cần một vài không gian tạm thời, mà tại nơi đó bạn có thể giữ những thay đổi cục bộ này và sau đó quay lại commit nó.
Trong Git, hoạt động stash giúp bạn stash những file đã được chỉnh sửa, những thay đổi, và lưu chúng trên một stack của những thay đổi chưa được hoàn thành, và từ đó bạn có thể ứng dụng lại bất cứ lúc nào.
[jerry@CentOS project]$ git status -s M string.c ?? string
Bây giờ bạn muốn chuyển branch do một vị khách đến bất ngờ, nhưng bạn không muốn commit những gì bạn đã làm trên đó, vì thế bạn stash những thay đổi đi. Để đẩy những cái stash mới này vào trong stack, bạn chạy lệnh git stash.
[jerry@CentOS project]$ git stash Saved working directory and index state WIP on master: e86f062 Added my_strcpy function HEAD is now at e86f062 Added my_strcpy function
Bây giờ thư mục làm việc của bạn đã sạch trơn và tất cả những thay đổi được giữ trên một stack. Hãy cùng thẩm tra lại nó với lệnh git status.
[jerry@CentOS project]$ git status -s ?? string
Bây giờ bạn có thể chuyển branch một cách an toàn và làm bất cứ điều gì. Chúng ta có thể quan sát danh sách của những thay đổi được stash bằng cách sử dụng lệnh git stash list.
[jerry@CentOS project]$ git stash list stash@{0}: WIP on master: e86f062 Added my_strcpy function
Giả sử bạn đã giải quyết xong việc với vị khách hàng mới đến và bạn quay trở lại làm đoạn code đang dở dang của mình, bạn chỉ cần thực hiện lện git stash pop, để di chuyển những thay đổi từ stack và đặt chúng vào thư mục làm việc hiện tại.
[jerry@CentOS project]$ git status -s ?? string [jerry@CentOS project]$ git stash pop
Lệnh trên sẽ tạo ra kết quả sau:
# On branch master # Changed but not updated: # (use "git add ..." to update what will be committed) # (use "git checkout -- ..." to discard changes in working directory) # # modified: string.c # # Untracked files: # (use "git add ..." to include in what will be committed) # # string no changes added to commit (use "git add" and/or "git commit -a") Dropped refs/stash@{0} (36f79dfedae4ac20e2e8558830154bd6315e72d4) [jerry@CentOS project]$ git status -s M string.c ?? string
Follow fanpage của team https://www.facebook.com/vietjackteam/ hoặc facebook cá nhân Nguyễn Thanh Tuyền https://www.facebook.com/tuyen.vietjack để tiếp tục theo dõi các loạt bài mới nhất về Java,C,C++,Javascript,HTML,Python,Database,Mobile.... mới nhất của chúng tôi.
Bài học Git phổ biến khác tại code24h.com: