Git stash là gì

  -  

Đôi khi bạn muốn chuyển đổi các nhánh, nhưng bạn đang thực hiện một phần chưa hoàn thành trong dự án hiện tại của mình. Bạn không muốn thực hiện commit hoàn thành một nửa công việc. Git stashing cho phép bạn làm như vậy. Lệnh git stash cho phép bạn chuyển đổi các nhánh mà không cần commit nhánh hiện tại.

Bạn đang xem: Git stash là gì

Hình dưới đây minh họa các thuộc tính và vai trò của lưu trữ liên quan đến kho lưu trữ và thư mục làm việc.

*

Nói chung, ý nghĩa của kho lưu trữ là ” cất giữ thứ gì đó một cách an toàn ở một nơi ẩn .” Ý nghĩa trong Git cũng giống như vậy đối với stash, Git tạm thời lưu dữ liệu của bạn một cách an toàn mà không cần commit.

Stashing sẽ loại bỏ trạng thái lộn xộn của thư mục làm việc của bạn và tạm thời lưu nó để sử dụng lại sau. Nhiều tùy chọn có sẵn với git stash. Một số tùy chọn hữu ích được đưa ra dưới đây:

Git stashGit stash saveGit stash listGit stash applyGit stash changesGit stash popGit stash dropGit stash clearGit stash branch

Nội dung chính


1. Cách Git Stashing làm việc

Để hiểu nó qua một ví dụ cụ thể sau. Tôi đã thực hiện các thay đổi đối với dự án GitExample2 của mình trong hai file từ hai nhánh khác nhau. Tôi đang ở trong một trạng thái lộn xộn và tôi vẫn chưa hoàn toàn chỉnh sửa bất kỳ file nào. Vì vậy, tôi muốn lưu nó tạm thời để sử dụng sau này. Chúng ta có thể lưu trữ nó như lưu trạng thái hiện tại của nó. Để lưu trữ, hãy xem trạng thái hiện tại của kho lưu trữ. Để kiểm tra trạng thái hiện tại của kho lưu trữ, hãy chạy lệnh git status. Lệnh git status được sử dụng như sau:

Cú pháp:

git statusĐầu ra:

*

Từ kết quả đầu ra ở trên, bạn có thể thấy trạng thái rằng có hai file design.cssnewfile.txt chưa được kiểm soát có sẵn trong kho lưu trữ. Để lưu tạm thời, chúng ta có thể sử dụng lệnh git stash. Lệnh git stash được sử dụng như:

Cú pháp:


git stashĐầu ra:

*

Trong đầu ra đã cho, kết quả được lưu bằng lệnh git stash. Chúng ta có thể kiểm tra trạng thái của kho lưu trữ.

*

Như bạn có thể thấy, công việc của tôi chỉ được cất giữ ở vị trí hiện tại của nó. Bây giờ, thư mục đã được làm sạch. Tại thời điểm này, bạn có thể chuyển đổi giữa các nhánh và làm việc trên chúng.

2. Git Stash Save (Lưu với tin nhắn):

Trong Git, các thay đổi có thể được lưu trữ bằng một tin nhắn. Để lưu trữ một thay đổi bằng một tin nhắn, hãy chạy lệnh dưới đây:

Cú pháp:

git stash save " " Đầu ra:

*

Kho trên sẽ được lưu bằng tin nhắn

3. Xem Danh sách Git Stash (Kiểm tra các Kho lưu trữ)

Để kiểm tra các kho lưu trữ Stash được lưu trữ, hãy chạy lệnh dưới đây:

Cú pháp:

git stash listĐầu ra:


*

Trong trường hợp trên, tôi đã tạo một kho lưu trữ, được hiển thị dưới dạng “stash
{0}: WIP on master: d4e21b1 design
“.

Nhấn q để thoát danh sách các stash.

Nếu chúng ta có nhiều hơn một kho, thì Nó sẽ hiển thị tất cả các kho tương ứng với id kho khác nhau. Hãy xem xét đầu ra dưới đây:

*

Nó sẽ hiển thị tất cả các kho có lập chỉ mục là stash
{0}: stash
{1}:,
v.v.

4. Sử dụng lại kho đã lưu trữ tạm

Bạn có thể áp dụng lại các thay đổi mà bạn vừa lưu trữ bằng cách sử dụng lệnh git stash. Hãy sử dụng lệnh git stash, theo sau là tùy chọn apply. Nó được sử dụng như:

Cú pháp:

git stash apply Đầu ra:

Kết quả ở trên sẽ khôi phục kho cuối cùng. Bây giờ, nếu bạn kiểm tra trạng thái của kho lưu trữ, nó sẽ hiển thị những thay đổi trên file. Hãy xem xét đầu ra dưới đây :

Từ đầu ra ở trên, bạn có thể thấy rằng kho lưu trữ được khôi phục về trạng thái trước đó trước khi lưu trữ. Nó đang hiển thị đầu ra là “Các thay đổi chưa commit .”

Trong trường hợp có nhiều hơn một kho, bạn có thể sử dụng lệnh “git stash apply” theo sau là id chỉ mục lưu trữ để áp dụng commit cụ thể. Nó được sử dụng như:


Cú pháp:

git stash apply Hãy xem xét đầu ra dưới đây:

Đầu ra:

Nếu chúng ta không chỉ định kho, Git sẽ lấy kho gần đây nhất và cố gắng áp dụng nó.

5. Xem Thay đổi của Git Stash

Chúng ta có thể theo dõi các kho và thay đổi chúng. Để xem các thay đổi trong file trước khi lưu trữ và sau hoạt động lưu trữ, hãy chạy lệnh dưới đây:

Cú pháp:

git stash show Lệnh trên sẽ hiển thị file được lưu trữ và các thay đổi được thực hiện trên chúng. Hãy xem xét đầu ra dưới đây:

Đầu ra:

*

Kết quả ở trên minh họa rằng có hai file được lưu trữ và hai lần chèn được thực hiện trên chúng.

Chúng ta có thể theo dõi chính xác những thay đổi nào được thực hiện trên file. Để hiển thị nội dung đã thay đổi của file, hãy thực hiện lệnh dưới đây:


Cú pháp:

git stash show -p Ở đây, -p là viết tắt của một phần kho(the partial stash). Lệnh đã cho sẽ hiển thị các file và nội dung đã chỉnh sửa, hãy xem xét kết quả đầu ra bên dưới:

Đầu ra:

*

Nhấn q để thoát khỏi trình xem thay đổi của stash

Kết quả trên hiển thị tên file có nội dung đã thay đổi. Nó hoạt động giống như lệnh git diff. Lệnh git diff cũng sẽ hiển thị chính xác như vậy.

6. Git Stash Pop (Áp dụng lại các thay đổi đã lưu trữ)

Git cho phép người dùng áp dụng lại các commit trước đó bằng cách sử dụng lệnh git stash pop. Tùy chọn popping xoá các thay đổi khỏi kho lưu trữ và áp dụng chúng vào file làm việc của bạn.

Lệnh git stash pop khá giống với git stash apply. Sự khác biệt chính giữa cả hai lệnh này là lệnh stash pop xóa kho lưu trữ khỏi ngăn xếp sau khi nó được áp dụng.

Cú pháp:

git stash pop Lệnh trên sẽ áp dụng lại các commit trước đó cho kho lưu trữ. Hãy xem xét đầu ra bên dưới.

Đầu ra:


*

Git Stash Drop (Unstash)

Lệnh git stash drop được sử dụng để xóa một stash khỏi hàng đợi. Nói chung, nó xóa kho lưu trữ gần đây nhất. Cần thận trọng trước khi sử dụng lệnh này, vì rất khó để hoàn lại nếu đã áp dụng.

Xem thêm: Những Điều Bạn Phải Biết Tổ Hợp Phím Tắt Ctrl Là Gì ? Bảng Tổ Hợp Phím Tắt Ctrl

Lệnh thả kho sẽ được sử dụng như:

Cú pháp:

git stash drop Đầu ra:

*

Trong kết quả đầu ra ở trên, kho lưu trữ gần đây nhất (stash
{0})
đã bị loại bỏ từ ba kho lưu trữ đã cho. Lệnh danh sách lưu trữ liệt kê tất cả các kho lưu trữ có sẵn trong hàng đợi.

Chúng ta cũng có thể xóa một kho cụ thể khỏi hàng đợi. Để xóa một kho lưu trữ cụ thể khỏi các kho lưu trữ có sẵn, hãy chuyển id kho vào lệnh drop kho lưu trữ. Nó sẽ được xử lý như sau:

Cú pháp:

git stash drop Giả sử rằng tôi có hai phần lưu trữ có sẵn trong hàng đợi của mình và tôi không muốn bỏ phần lưu trữ gần đây nhất của mình, nhưng tôi muốn xóa phần cũ hơn. Sau đó, nó sẽ được vận hành như sau:

git stash drop stash
{1}

7. Git Stash Clear

Lệnh git stash clear cho phép xóa tất cả các kho lưu trữ có sẵn cùng một lúc. Để xóa tất cả các kho lưu trữ có sẵn, hãy thao tác lệnh dưới đây:

Cú pháp:


git stash clear nó sẽ xóa tất cả các kho lưu trữ tồn tại trong kho lưu trữ.

Đầu ra:

*

Tất cả các kho được xóa trong đầu ra ở trên. Lệnh git stash list để trống vì không có stash nào trong kho lưu trữ.

8. Git Stash Branch

Nếu bạn lưu trữ một số công việc trên một nhánh cụ thể và tiếp tục làm việc trên nhánh đó. Sau đó, nó có thể tạo ra xung đột trong quá trình hợp nhất vì có quá nhiều stash. Vì vậy, tốt hơn nên lưu trữ công việc trên một nhánh riêng biệt với tên cụ thể nào đó.

Lệnh git stash branch cho phép người dùng lưu trữ công việc trên một nhánh riêng biệt để tránh xung đột. Cú pháp của nhánh này như sau:

Cú pháp:

git stash branch Lệnh trên sẽ tạo một nhánh mới và chuyển công việc đã lưu trữ trên đó. Hãy xem xét đầu ra dưới đây:

Đầu ra:

*

Trong kết quả đầu ra ở trên, công việc đã lưu trữ được chuyển sang nhánh mới được tạo. Nó sẽ tránh xung đột hợp nhất trên nhánh master.

Cài ứng dụng ceds.edu.vn để dễ dàng cập nhật tin và học lập trình mọi lúc mọi nơi tại đây.


Tài liệu từ ceds.edu.vn:

Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của ceds.edu.vn để nhận được nhiều hơn nữa:

Chào thân ái và quyết thắng!


Bạn thấy chất lượng bài viết này tốt không?

Thả 1->5 ❤️ để đánh giá chất lượng bài viết.


Gửi đánh giá

Xếp hạng 0 / 5. Số lượng đánh giá 0

Hãy đánh giá để ủng hộ và giúp chúng tôi cải thiện bài viết tốt hơn cho bạn!


Chúng tôi xin lỗi vì bài viết chưa được chất lượng. Chúng tôi sẽ cải thiện nó sớm nhất!


Hãy gửi phản hồi của bạn cho chúng tôi


Tại sao bài viết này lại không chất lượng?

Gửi phản hồi
Đăng ký kênh youtube để ủng hộ ceds.edu.vn nha các bạn, Thanks you!
Share
Facebook
Twitter
Pinterest
Linkedin
Email
Bài trướcTự học Git | Lệnh git clone
Bài tiếp theoTự học Git | Tìm hiểu file .gitignore
David Xuân

Tự học Git | Các câu hỏi phỏng vấn về Git cực hay phần 3



Tự học Git | Các câu hỏi phỏng vấn về Git cực hay phần 2



Tự học Git | Các câu hỏi phỏng vấn về Git cực hay phần 1


Thuê server giá cực rẻ
Top các bài viết
*

Google I / O 2021: Những gì developer có thể mong...


David Xuân - 18 Tháng Năm, 2021
0
Hội nghị I / O 2021 của Google sẽ bắt đầu vào tuần này và trọng tâm sẽ là Android 12, máy học và có lẽ là một số phần cứng nhưng có một số chủ đề và cơ hội dành cho developer khá rộng rãi đáng để theo dõi.
*

Project CodeNet mới của IBM để dạy AI cách viết code


17 Tháng Năm, 2021

Tự học Flutter | Các câu hỏi phỏng vấn Flutter phần...


3 Tháng Năm, 2021

Tự học Flutter | Các câu hỏi phỏng vấn Flutter phần...


3 Tháng Năm, 2021

Tự học Flutter | Các câu hỏi phỏng vấn Flutter phần...


3 Tháng Năm, 2021
BÀI VIẾT TIÊU BIỂU

Google I / O 2021: Những gì developer có thể mong...


18 Tháng Năm, 2021

Project CodeNet mới của IBM để dạy AI cách viết code


17 Tháng Năm, 2021

Tự học Flutter | Các câu hỏi phỏng vấn Flutter phần...


3 Tháng Năm, 2021
BÀI VIẾT PHỔ BIẾN

Tổng hợp toàn bộ tài liệu học hướng đối tượng và...


26 Tháng Bảy, 2020

Giới thiệu chi tiết về CI-CD và những điều cần thiết...

Xem thêm: Tải Game Robot Đại Chiến 4+ +, Game Đại Chiến Robot, Game Tính Điểm


1 Tháng Mười, 2019

Giới thiệu về bộ tiền xử lý(preprocessor)


22 Tháng Hai, 2020
MỤC XEM NHIỀU
VỀ CHÚNG TÔI
ceds.edu.vn là kênh thông tin, sự kiện, hướng dẫn và chia sẻ mọi thứ kiến thức về lập trình mới nhất được cập nhật liên tục, chính xác và đầy đủ, chuyên sâu.
Liên hệ chúng tôi: ceds.edu.vnn
gmail.com
THEO DÕI CHÚNG TÔI