Có cách nào để lấy danh sách tất cả các thư mục/tệp mới/bị xóa/sửa đổi trong kho lưu trữ cục bộ/từ xa với nhau trong GIT không?Danh sách GIT của các tệp mới/đã sửa đổi/bị xóa
Trả lời
Tôi không chắc chắn ý bạn là gì, nhưng nếu bạn muốn một danh sách riêng lẻ (ví dụ: tất cả các tệp đã sửa đổi), bạn có thể sử dụng git ls-files
với cờ bên phải (cho các tệp đã sửa đổi là -m
). Nếu bạn muốn tất cả thông tin này cùng một lúc, bạn có thể sử dụng git status --porcelain
để có được đầu ra có thể phân tích cú pháp tập lệnh của trạng thái.
Trạng thái Git không liệt kê các thư mục/tệp mới đã được thêm vào repo từ xa. Phải không ? – Jean
@alertjean: Bạn có ý nghĩa gì bởi "mới"? Họ có bị lật đổ không? Chúng được thêm vào nhưng không được cam kết? Họ là ai? –
Cảm ơn, đây chỉ là những gì tôi đang tìm kiếm. Bây giờ tôi có thể làm ví dụ 'geany $ (git ls-files -m)' – mwfearnley
Những gì bạn có thể muốn là một cái gì đó như:
git fetch # update what you know about the remote repo
git diff --name-status master origin/master
Nhưng nó khá khó để nói chính xác những gì bạn muốn chi nhánh diff từ câu hỏi của bạn.
Một cách để làm điều này là với lệnh whatchanged
:
$ git whatchanged
này hiển thị các tập tin thay đổi đối với từng cam kết trong cây và có thể được sử dụng để nhìn vào chi tiết cụ thể là tốt. Hãy nhìn vào git help whatchanged
Cách tốt nhất để liệt kê những tập tin được sử dụng tình trạng git --porcelain
Ví dụ: Để gỡ bỏ những file đã xóa trước đó:
git status --porcelain | awk 'match($1, "D"){print $2}' | xargs git rm
Loại bỏ đường ống cuối cùng ở cuối là cách tốt để liệt kê những tập tin nào đã bị xóa. Hữu ích nếu bạn có trạng thái git rất dài và muốn lọc trên một trạng thái cụ thể. – IanVS
sử dụng với lệnh --name-status
dụ với các thẻ:
git diff v1.0.1 v1.0.2 --name-status
ví dụ với cam kết:
git diff b79810fc4d be69e41d1c --name-status
nó sẽ liệt kê tất cả các tập tin cập nhật với tình trạng của mình: M
- sửa đổi D
- xóa A
- thêm
To được chỉ tên tập tin và vị thế của các tập tin hiện thay đổi, bạn có thể chỉ đơn giản là:
git diff --name-status
Bạn sẽ nhận được đầu ra trần như thế này:
M a.txt
M b.txt
Bây giờ, đường ống đầu ra để cut
để trích xuất các cột thứ hai:
git diff --name-status | cut -f2
Sau đó, bạn sẽ chỉ có tên tệp:
a.txt
b.txt
- 1. Git truy xuất danh sách tất cả các tệp đã được sửa đổi trong chi nhánh
- 2. Xóa danh sách các đối tượng khỏi danh sách khác
- 3. C# Xóa danh sách khỏi danh sách
- 4. Git bỏ qua các tệp đã xóa
- 5. C# xóa các mục khỏi danh sách
- 6. Python - xóa các mục khỏi danh sách
- 7. emacs lisp: Cách xóa/xóa phần tử của danh sách?
- 8. Xóa các tệp đã xóa khỏi lịch sử git
- 9. Cách xóa danh sách các từ khỏi danh sách các chuỗi
- 10. xung đột git - tệp bị xóa trong HEAD và sửa đổi trong bản sửa đổi
- 11. Git thêm tất cả các tệp đã sửa đổi, xóa và không được theo dõi?
- 12. Cách sửa đổi git add để xử lý các tệp đã xóa?
- 13. Chỉnh sửa các phần tử trong danh sách trong python
- 14. Cách Pythonic để sửa đổi tất cả các mục trong một danh sách và lưu danh sách thành tệp .txt
- 15. Xóa các bản sao khỏi danh sách các danh sách trong Python
- 16. Xóa mục khỏi danh sách
- 17. Nhận danh sách đệ quy của các tệp svn: ignore'd
- 18. Kết hợp hai danh sách và xóa các bản sao, mà không xóa các bản sao trong danh sách gốc
- 19. Xóa tệp bằng Git/GitHub
- 20. xóa các mục khỏi Danh sách chung <t>
- 21. Python: Cách xóa danh sách trống khỏi danh sách?
- 22. Xóa danh sách khỏi danh sách bằng Python
- 23. Matching và xóa các mục trong danh sách các hàng
- 24. tìm các tệp không có trong danh sách
- 25. python xóa các bản sao khỏi 2 danh sách
- 26. Xóa tệp bằng Git GUI
- 27. Làm phẳng danh sách các danh sách
- 28. Git hook, sửa đổi các tệp cam kết
- 29. xóa danh sách phụ khỏi danh sách trong tcl
- 30. Tạo danh sách các tệp/thư mục đã thay đổi/v.v. sử dụng git giữa hai thẻ
'git status' có vẻ như vậy. – Blender