Khi tôi thực hiện git status
Tôi nhận được danh sách các tệp có tiền tố là new file:
. Làm thế nào tôi có thể nhận được chỉ danh sách này? Tôi muốn xử lý các tập tin này trong một vòng lặp đơn giản trong một kịch bản shell nhỏ.git: liệt kê các tệp mới chỉ
Trả lời
Tôi sẽ sử dụng một cái gì đó như git status --porcelain | grep "^A" | cut -c 4-
Đó là năm sau đó, nhưng điều này không còn làm việc cho tôi (đầu ra của 'trạng thái git' có khả năng thay đổi). ** CHỈNH SỬA: ** Bah. Chưa thêm/cam kết nó. Khẳng định thời gian thử nghiệm! – Hendy
Bạn có thể sử dụng trạng thái git git --short để nhận danh sách tệp.
Điều này không nên bỏ qua. – jarederaj
Không sử dụng grep để phân tích đầu ra git. Git gần như chắc chắn có những thứ bạn đang tìm kiếm được xây dựng trong (trừ khi bạn đang đi cho những thứ thực sự tiên tiến).
Bạn có thể sử dụng git diff
để hiển thị các thay đổi. --name-only
chỉ hiển thị tên tệp. --diff-filter=A
chỉ liệt kê các tệp được thêm vào.
Nếu bạn muốn xem các tệp mới mà bạn đã thêm vào chỉ mục sử dụng --cached
, nếu không hãy bỏ qua nó. Để xem cả hai khác biệt với HEAD
.
Các lệnh giống như thế này:
git diff --name-only --diff-filter=A --cached # All new files in the index
git diff --name-only --diff-filter=A # All files that are not staged
git diff --name-only --diff-filter=A HEAD # All new files not yet committed
diff-filter thực sự là con đường để đi :) –
Thật không may là OP không chấp nhận câu trả lời này, như trong quan điểm khiêm nhường của tôi, bạn hoàn toàn đúng. :) –
Thay vì phân tích đầu ra của "tình trạng git", nó có lẽ là tao nhã hơn để sử dụng
git ls-files -o --exclude-standard
Như với git status
, ls-files
sẽ sản xuất sản lượng so với thư mục làm việc của bạn.
Bạn có thể muốn bao gồm --full-name
tùy chọn:
git ls-files -o --exclude-standard --full-name
OP được yêu cầu liệt kê các tệp mới và câu trả lời này không yêu cầu bất kỳ chương trình nào khác để dẫn đầu ra. Tôi tìm thấy trên mac git diff đã không làm việc với các bộ lọc như mong đợi trong khi điều này đã làm :) –
Điều này rõ ràng là người chiến thắng. Nó hoạt động trên các thư mục mới chứa tất cả các tệp mới. – Ali
Tuy nhiên, lưu ý rằng điều này không hoạt động từ thư mục con. Tôi đã kết thúc bằng cách sử dụng 'git diff' để làm cho tập lệnh của tôi hoạt động từ mọi thư mục trong kho: ' $ git diff --name-only --diff-filter = A HEAD' –
Danh sách các tập tin mới hoặc để có được các tập tin được thêm vào git, có thể được nhận bằng tình trạng git và lệnh grep như git status -s | grep ??
[email protected]:~/project-repo-directory# git status -s | grep ??
?? src/.../file1.js
?? src/.../file2.js
?? src/.../file3.js
....
git status | grep "new file:" | cut -c 14-
git status | grep "modified:" | cut -c 14-
- 1. Liệt kê các tệp trong repo git cục bộ?
- 2. git: Chỉ liệt kê các tệp được sửa đổi cho tất cả các dấu gạch ngang
- 3. Chỉ liệt kê các tệp trong một thư mục?
- 4. Chỉ liệt kê các SubFolders trong C#?
- 5. Liệt kê tất cả các chỉ mục
- 6. Liệt kê tên, ngày và thư git,
- 7. Làm cách nào để chỉ liệt kê các tệp sẽ được cam kết?
- 8. Git chỉ thêm tất cả các tệp mới, chứ không phải các tệp đã sửa đổi
- 9. git liệt kê tất cả các lệnh có sẵn
- 10. Cách liệt kê các thẻ Git chưa được đánh dấu
- 11. Liệt kê tất cả các tệp đã từng tồn tại trong kho Git
- 12. Cách liệt kê các tệp trong một tệp .a
- 13. Git: Liệt kê tất cả các tệp có cờ giả định không đổi
- 14. Thiết lập Naive Git, Có thể hủy các tệp được liệt kê trên mygitignore không?
- 15. Cách liệt kê tệp bằng lệnh dos?
- 16. Làm cách nào để liệt kê các tệp không kết thúc bằng dòng mới?
- 17. Bash/DOS/PowerShell script để liệt kê các phiên bản tệp mới nhất?
- 18. Visual Studio 2012 - Nhận mới nhất và liệt kê các tệp đã thay đổi?
- 19. Chỉ định giá trị cho các loại được liệt kê
- 20. Theo dõi các chỉ số trong liệt kê nhanh
- 21. trạng thái git - liệt kê ngày sửa đổi cuối cùng
- 22. Liệt kê các tệp không khớp với mẫu?
- 23. KCFinder 'Bạn không có quyền liệt kê các tệp.'
- 24. Cách liệt kê các tệp trong thư mục android?
- 25. Liệt kê tất cả các tệp trong gói homebrew
- 26. gdb: howto liệt kê các tệp đang mở
- 27. Liệt kê tất cả các xử lý tệp đang mở?
- 28. Cách liệt kê các tệp trong thư mục hiện tại?
- 29. Cách liệt kê các tệp trong thư mục tĩnh?
- 30. Liệt kê các tệp trong một thư mục được chỉ định bằng PL/SQL
Bạn đã thử 'grep' chưa? 'git status | grep tệp mới'. – Zeta
Có, nhưng điều đó không mang lại cho tôi tên tệp đơn giản. – BetaRide
Tôi thà dùng 'git ls-files --others --exclude-standard' (http://stackoverflow.com/a/2299448/6309) – VonC