2013-02-06 33 views
7

Theo số git docs, git stash list sẽ chấp nhận bất kỳ tùy chọn nào bạn có thể chuyển đến git log.git: Chỉ liệt kê các tệp được sửa đổi cho tất cả các dấu gạch ngang

Điều tôi muốn làm là chuyển tùy chọn --stat tới git stash list. Điều này hoạt động, tuy nhiên nó dường như hiển thị mọi tập tin trong repo.

Bây giờ, tôi biết có một git stash show sẽ chỉ hiển thị những tệp đã bị thay đổi, nhưng sau đó tôi cần phải thực hiện và kiểm tra từng tệp một cách thủ công.

Có cách nào để đưa git hiển thị cho tôi danh sách các dấu gạch ngang, với chỉ các thay đổi đã được lưu trữ cho từng loại không?

Trả lời

8

Như thế này tôi đoán:

git stash list | while IFS=: read STASH ETC; do echo "$STASH: $ETC"; git diff --stat $STASH~..$STASH --; done 

(Tested trong Git Bash MSysGit.)

git stash show $STASH thay vì git diff --stat $STASH~..$STASH cũng làm việc nhưng không thể chịu được chậm.

3

git stash show -p để hiển thị biểu mẫu ở dạng bản vá mà tôi tin rằng bạn đang yêu cầu.

Đối với một stash cụ thể, bạn có thể thực hiện như sau: git stash show -p [email protected]{x} trong đó x là số thứ tự trên ngăn xếp.

+0

Ồ, xin lỗi nếu bài đăng của tôi gây nhầm lẫn. Tôi muốn các hành vi tương tự như 'git stash show' (hoặc' git log --stat') nhưng không cần phải chỉ định 1 bởi 1. –

+0

Bạn phải tạo một tập lệnh –

+0

Ngoài ra, để chỉ liệt kê các tệp cho một stash cụ thể, nó sẽ là 'git stash show -p stash @ {x} - name-only' –

Các vấn đề liên quan