Lệnh git Stash » https://mindovermetal.org

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

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ẽ vô hiệu trạng thái lộn xộn của thư mục thao tác của bạn và trong thời điểm 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 dụng được đưa ra dưới đây :

  • Git stash
  • Git stash save
  • Git stash list
  • Git stash apply
  • Git stash changes
  • Git stash pop
  • Git stash drop
  • Git stash clear
  • Git stash branch

1. Cách Git Stashing thao tác

Để hiểu nó qua một ví dụ đơn cử sau. Tôi đã thực thi những đổi khác so với dự án Bất Động Sả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 trọn vẹn chỉnh sửa bất kể file nào. Vì vậy, tôi muốn lưu nó trong thời điểm tạm thời để sử dụng sau này. Chúng ta hoàn toàn có thể tàng trữ nó như lưu trạng thái hiện tại của nó. Để tàng trữ, hãy xem trạng thái hiện tại của kho tàng trữ. Để kiểm tra trạng thái hiện tại của kho tàng 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, tác dụng được lưu bằng lệnh git stash. Chúng ta hoàn toàn có thể kiểm tra trạng thái của kho tàng trữ .

Như bạn hoàn toàn có thể thấy, việc làm 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 gian này, bạn hoàn toàn có thể quy đổi giữa những nhánh và thao tác trên chúng .

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

Trong Git, những biến hóa hoàn toàn có thể được tàng trữ bằng một tin nhắn. Để tàng trữ một biến hóa bằng một tin nhắn, hãy chạy lệnh dưới đây :

Cú pháp:

git stash save " < Stashing  Message > "  

Đầu ra:


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

3. Xem Danh sách Git Stash ( Kiểm tra những Kho tàng trữ )

Để kiểm tra những kho tàng trữ Stash được tàng 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 list những stash .
Nếu tất cả chúng ta có nhiều hơn một kho, thì Nó sẽ hiển thị toàn bộ những 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 đã tàng trữ tạm

Bạn hoàn toàn có thể vận dụng lại những đổi khác mà bạn vừa tàng 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 hoàn toàn có thể sử dụng lệnh “ git stash apply ” theo sau là id chỉ mục tàng trữ để vận dụng commit đơn cử. 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 tất cả chúng ta không chỉ định kho, Git sẽ lấy kho gần đây nhất và cố gắng nỗ lực vận dụng nó .

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

Chúng ta hoàn toàn có thể theo dõi những kho và đổi khác chúng. Để xem những đổi khác trong file trước khi tàng trữ và sau hoạt động giải trí tàng 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 tàng trữ và những đổi khác được thực thi 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 tàng trữ và hai lần chèn được thực thi 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ị những file và nội dung đã chỉnh sửa, hãy xem xét hiệu 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 những biến hóa đã tàng trữ )

Git được cho phép người dùng vận dụng lại những commit trước đó bằng cách sử dụng lệnh git stash pop. Tùy chọn popping xoá những biến hóa khỏi kho tàng trữ và vận dụng chúng vào file thao tác của bạn .
Lệnh git stash pop khá giống với git stash apply. Sự độc lạ chính giữa cả hai lệnh này là lệnh stash pop xóa kho tàng trữ khỏi ngăn xếp sau khi nó được vận dụng .

Cú pháp:

git stash pop  

Lệnh trên sẽ vận dụng lại những commit trước đó cho kho tàng 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.

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 hoàn toàn có thể xóa một kho đơn cử khỏi hàng đợi. Để xóa một kho tàng trữ đơn cử khỏi những kho tàng trữ có sẵn, hãy chuyển id kho vào lệnh drop kho tàng trữ. Nó sẽ được giải quyết và xử lý như sau :

Cú pháp:

git stash drop  < stash  id >  

Giả sử rằng tôi có hai phần tàng trữ có sẵn trong hàng đợi của mình và tôi không muốn bỏ phần tàng 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 quản lý và 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ổng thể những kho tàng trữ sống sót trong kho tàng trữ .

Đầu ra:


Tất cả những 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 tàng trữ .

8. Git Stash Branch

Nếu bạn tàng trữ một số ít việc làm trên một nhánh đơn cử và liên tục thao tác trên nhánh đó. Sau đó, nó hoàn toàn có thể tạo ra xung đột trong quy trình hợp nhất vì có quá nhiều stash. Vì vậy, tốt hơn nên tàng trữ việc làm trên một nhánh riêng không liên quan gì đến nhau với tên đơn cử nào đó .
Lệnh git stash branch được cho phép người dùng tàng trữ việc làm trên một nhánh riêng không liên quan gì đến nhau để tránh xung đột. Cú pháp của nhánh này như sau :

Cú pháp:

git stash branch  <  Tên nhánh gợi ý >  

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

Đầu ra:


Trong hiệu quả đầu ra ở trên, việc làm đã tàng 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 cafedev để 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ừ cafedev:

Nếu bạn thấy hay và có ích, bạn hoàn toàn có thể tham gia những kênh sau của cafedev để nhận được nhiều hơn nữa :
Chào thân ái và quyết thắng !

Đăng ký kênh youtube để ủng hộ Cafedev nha các bạn, Thanks you!

5/5 - (1 vote)
Banner-backlink-danaseo

Bài viết liên quan

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments