git -> hiển thị danh sách các tệp đã thay đổi trong các lần cam kết gần đây trong một thư mục cụ thể


Câu trả lời:


164

Lệnh này giống với lệnh svn hơn vì nó hiển thị trạng thái tệp: Đã thêm (A), Đã sao chép (C), Đã xóa (D), Đã sửa đổi (M), Đã đổi tên (R) và các trạng thái khác.

git log --name-status -10 path/to/dir

Nó là giá trị xem xét trang tài liệu đầy đủ cho git log. Ở đó, bạn sẽ học được điều đó -10đề cập đến 10 cam kết trong quá khứ và -psẽ cung cấp cho bạn bản vá đầy đủ, trong số nhiều tính năng bổ sung khác.


12
Đối với tính hoàn chỉnh: tập hợp các tùy chọn tương tự thường được sử dụng là -p(bản vá đầy đủ), --stat(số dòng đã thay đổi), --numstat(như --statnhưng máy có thể đọc được) --name-status--name-only(chỉ tên tệp).
Cascabel

3
Đối với bất kỳ ai đến câu hỏi này mà chưa biết, -10 đề cập đến số lượng cam kết bạn muốn hiển thị. Nếu bạn cần một danh sách đầy đủ các cam kết, hãy thử tạo một số lớn bất thường, như -1000 trở lên nếu cần.
Julian Soro

Cũng có thể xem lịch sử kể từ một cam kết hoặc nhãn cụ thể? Đó là hàng trăm các cam kết trước đây, vì vậy cố gắng để đếm mà ...
MrFox

2
@MrFox git log <from revision>.., ví dụ git log abc123... Tìm hiểu thêm về định dạng phạm vi ở đây: kernel.org/pub/software/scm/git/docs/...
htanata

36

Để hiển thị tất cả các tệp đã thay đổi trong 10 lần cam kết cuối cùng mà không có bất kỳ thông tin cam kết nào, hãy thực hiện:

git diff --name-only HEAD~10..HEAD yourdir

3
Giải pháp hoàn hảo để mở lại tệp trong trình chỉnh sửa của bạn.
cdosborn,

1
Giải pháp này chỉ liệt kê đường dẫn tệp, không có nhận xét, được đánh giá cao hơn câu trả lời được chấp nhận. Nếu tất cả những gì bạn muốn là danh sách các tệp đã thay đổi trong các cam kết được chỉ định và giải pháp này thực hiện điều đó .
Big Rich

6

Cố gắng làm

git log -p -10 yourdir/

Nó sẽ hoạt động.


1
OP đã yêu cầu một danh sách các tệp đã thay đổi, không phải bản vá đầy đủ.
Cascabel

1
Nếu bạn muốn danh sách các tập tin thay đổi, bạn có thể làm --stat ở vị trí của -p
blue112

1

Để hiển thị tất cả commitchi nhánh của bạn (gần đây và cũ), bạn cần đếm số lần cam kết trong chi nhánh

git rev-list --count branch_name

Khi bạn nhận được tất cả số lượng cam kết, bạn có thể chạy

git log --name-status -countNumber /path

Và người ta có thể đơn giản hóa chế độ xem bằng cách thêm --pretty=onelinetùy chọn vào git loglệnh trên. Thêm một | sort | uniqlệnh sẽ giúp người ta thấy gắn thẻ trạng thái A / C / D / M / R theo câu trả lời của
htanata
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.