Làm thế nào để thể hiện những gì một cam kết đã làm?


265

Một cách ngu ngốc mà tôi biết là:

git diff commit-number1 commit-number2

Cách nào tốt hơn?

Ý tôi là tôi muốn biết bản thân commit1, tôi không muốn thêm commit2 trước khi nó là tham số.


14
Mặc dù "git show <commit>" là giải pháp chính xác, bạn có thể sử dụng "git diff <commit> ^!" để có được sự khác biệt giữa cam kết và cha mẹ (đầu tiên) của nó. Xem người đàn ông git-rev-parse (1) để biết chi tiết.
Jakub Narębski

Đạo cụ cho @Jakub: git diff <commit>^!là câu trả lời, IMHO. Đó là những gì bạn thấy trong chế độ xem cam kết trên github.com
Chris

Câu trả lời:



63

Làm

$ git log -p

làm những gì bạn cần?

Kiểm tra chương về Nhật ký Git trong Sách cộng đồng Git để biết thêm ví dụ. (Hoặc xem tài liệu .)

Cập nhật: Như những người khác ( JakubBombe ) đã chỉ ra: mặc dù các công việc trên, git show thực sự là lệnh được dự định để thực hiện chính xác những gì được yêu cầu.


51

TL; DR

git show <commit>


Chỉ

Để hiển thị những gì một cam kết đã làm với số liệu thống kê:

git show <commit> --stat

Đăng nhập

Để hiển thị nhật ký cam kết với các khác biệt được giới thiệu cho từng cam kết trong một phạm vi:

git log -p <commit1> <commit2>

<commit>

Mỗi cam kết có một id duy nhất mà chúng tôi tham chiếu ở đây là <commit> . Id duy nhất là hàm băm SHA-1 - tổng kiểm tra nội dung bạn đang lưu trữ cộng với tiêu đề. #TMI

Nếu bạn không biết <commit>:

  1. git logđể xem lịch sử cam kết

  2. Tìm cam kết mà bạn quan tâm.


22

Tôi phát hiện ra rằng "git show --stat" là thứ tốt nhất trong tất cả ở đây, cung cấp cho bạn một bản tóm tắt ngắn gọn về cam kết, những gì bạn đã thêm và sửa đổi mà không cung cấp cho bạn toàn bộ nội dung, đặc biệt là nếu bạn thay đổi nhiều tệp .


6

Đây là một cách tôi biết. Với git, dường như luôn có nhiều hơn một cách để làm điều đó.

git log -p commit1 commit2
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.