Stash là gì

Mình đã với đang áp dụng Git mang lại việc thống trị source code, mình thường xuyên coi thao tác trên một branch được check out ra xuất phát từ một branch cội đặt thương hiệu là develop trong một vài trường hợp:

Mình không muốn commit những chuyển đổi hiện tại nhưng khách hàng hắn dí chiếc bug XX rồi yêu ước sửa ngay cơ mà bug này cũng bé dại nhảy qua sửa chắn chắn 15 phút là chấm dứt nên mình đề xuất chuyển branch mới để fix ngay lập tức.Mình muốn quay lại branch develop hoặc một branch như thế nào đó, hay quay lại những chiếc code cũ đã được commit trong HEAD nhưng lại chưa mong commit thay đổi hiện tại đồng thời muốn sau thời điểm back lại thì những biến đổi mà mình đang làm việc vẫn ở nguyên ở kia và giữ nguyên trạng thái.Kết quả sau khi mình chạy lệnh git pull hoặc git rebase bên trên branch bây giờ dính conflict tuy thế lại mắc mấy bài toán cá nhân chưa xuất hiện muốn commit.Mình nhận biết là đã code hầu hết dòng đầy tận tâm sau cả giờ đồng hồ thời trang nhưng lại nhầm branch, thế cho nên muốn chuyển hầu hết dòng code này qua đúng với branch phải nó.

Bạn đang xem: Stash là gì

Vì vậy mình có đi tìm và hỏi thì được biết Git có một feature có tên là Git stash sẽ giúp mình giải quyết và xử lý được sự việc này. Nếu bạn đã, đang thực hiện Git vào một thời gian thì rất có thể bạn đã từng có lần sử dụng Git stash, kia là trong những feature hữu ích của Git.

*
Nguồn ảnh: code.tutsplus.com

Dưới đây là một trong những tính năng về Git stash:

Git stash saveGit stash listGit stash applyGit stash popGit stash showGit stash branch Git stash clearGit stash drop

Git stash save | lưu lại công việc đang làm cho dở

Bạn đang code file awesome.vue tuy vậy chưa muốn commit với đang mong chuyển sang 1 branch khác, git đang yêu cầu chúng ta commit những biến đổi trước khi gửi branch.Câu lệnh này cũng tương tự Git stash nhưng bạn có thể thêm vào nhiều tùy chọn đi cùng rất nó. Mình hoàn toàn có thể coi Git stash == Git stash save (khi không có tùy chọn nào).

Git stash với message

git stash save “Your stash message”.

Câu lệnh bên trên sẽ đưa các file vào thư mục làm việc của công ty về commit gần nhất và gửi những biến đổi hiện tại vào trong stack. Yên trung khu lát nữa sau khi mình quay lại branch này sẽ thuận tiện lấy lại những biến đổi như lúc đầu để tiếp tục làm việc. Câu lệnh này chỉ không giống git stash kia là bao gồm thêm stash message nhằm mình dễ dàng biết ban sơ đang có tác dụng gì, tưởng tượng đơn giản giống như việc bạn commit kèm message mô tả các bước ấy.

Xem thêm: Đàn Ông Yêu Phụ Nữ Như Thế Nào, Giải Mã Tâm Lý Đàn Ông Khi Yêu

Stashing untracked files

Bạn cũng rất có thể stash (đưa thư mục thao tác làm việc về trạng thái ban đầu) với untracked files - gần như file được chế tác mới, chưa từng được add.

git stash save -uorgit stash save --include-untrackedVí dụ khi mình thay đổi code so với commit A nhưng mà làm một hồi thì thấy không hợp lý và mình muốn xóa bỏ hết các dòng code bắt đầu tạo và chuyển trạng thái các file vào project đang làm việc về commit A. Chú ý những biến hóa này chưa được add vào staged, thì mình hoàn toàn có thể sử dụng git checkout mặc dù câu lệnh này lại không có tác dụng đối với đầy đủ file được tạo mới - untracked file, cho nên sử dụng git stash save -u cho thấy rõ sự nhân tiện lợi.

Git stash list

Trước khi nói về câu lệnh này, bọn họ hãy cùng nhìn biện pháp mà stash hoạt động.Khi chúng ta chạy lệnh Git stash hoặc Git stash save, Git đã thực sự tạo mới một commit object với một tên nào kia và bảo quản trong repo của bạn, những commit object này sẽ được tổ chức lưu trữ dạng stack, kia là một cái thùng có đáy cùng thằng nào được lưu lại trước sẽ ở ngay gần với đáy thùng hơn.

Điều đó tức là bạn cũng trở nên xem được danh sách các commit đó hệt như việc bạn xem log các commit thông thường vậy.

Git stash list

*
Bạn rất có thể xem phần đa stash đã thực hiện và các stash được hiển thị từ bên trên xuống theo đồ vật tự thời gian tạo nên giảm dần (các stash tiên tiến nhất sẽ tồn tại đầu).Và bây giờ bạn đã thấy git stash save kèm theo message có ích chưa? Hãy chú ý vào stash gần nhất ở lấy ví dụ trên.

Git stash apply | lấy lại thay đổi đã stash

git stash apply 1Bạn vẫn thấy công dụng của việc thêm message khi lưu lại stash chưa?

*

Git stash pop

Câu lệnh này tương tự như stash apply tuy vậy nó xóa stash tự stack sau khoản thời gian nó được apply nghĩa là mình đã lấy lại được những thay đổi.Ví dụ:!(Git stash pop ex)

Bạn vẫn thấy stash sớm nhất bị xóa bỏ list và 0 hôm nay sẽ được update với stash cũ hơn.Tương tự nếu bạn muốn pop một stash cụ thể thì cũng thực hiện id y như khi apply

git stash pop 1

Git stash show | Nội dung rứa đổi

Xem nội dung ví dụ từ lần biến hóa thứ 1

git stash show 1

*
Nếu mong mỏi xem toàn bộ thay đổi