Hình thức hiện đại của lệnh đó là git stash push [--] [<pathspec>...]
vì Git 2.16+ ( git stash save
không dùng nữa )
Bạn có thể kết hợp điều đó với một hình thức ký tự đại diện, ví dụ:
git stash push --all --keep-index ':(glob)**/*.testextension'
Nhưng điều đó không hoạt động tốt với Git cho Windows, cho đến Git 2.22 (quý 2 năm 2019), xem vấn đề 2037 , xem xét git stash
đã được triển khai lại trong C (thay vì tập lệnh shell)
Xem cam kết 7db9302 (11 tháng 3 năm 2019) của Thomas Gummerer ( tgummerer
) .
Xem cam kết 1366c78 , cam kết 7b556aa (07 tháng 3 năm 2019) của tác giả Julian Schindelin ( dscho
) .
(Được hợp nhất bởi Junio C Hamano - gitster
- trong cam kết 0ba1ba4 , ngày 22 tháng 4 năm 2019)
dựng sẵn stash
: xử lý :(glob)
lại các pathspecs
Khi chuyển một danh sách các đường dẫn đến, hãy nói, git add
chúng ta cần cẩn thận để sử dụng biểu mẫu gốc, chứ không phải dạng phân tích cú pháp của các pathspecs.
Điều này tạo ra sự khác biệt, ví dụ như khi gọi
git stash -- ':(glob)**/*.txt'
trong đó biểu mẫu gốc bao gồm :(glob)
tiền tố trong khi biểu mẫu được phân tích cú pháp thì không.
Tuy nhiên, trong phần dựng sẵn git stash
, chúng tôi đã chuyển biểu mẫu được phân tích cú pháp (nghĩa là không chính xác) và git add
sẽ thất bại với thông báo lỗi:
fatal: pathspec '**/*.txt' did not match any files
ở giai đoạn git stash
bỏ các thay đổi từ bàn làm việc, ngay cả khi refs/stash
đã thực sự được cập nhật thành công.