2010-06-07 19 views

Trả lời

16

Lệnh git show hiển thị ngày của lần commit gần đây nhất. Đây không phải là ngày mà cam kết được kéo đến kho lưu trữ cục bộ, nhưng Git không giữ thông tin kéo như vậy.

Bạn có thể tìm thời gian của lần kéo cuối cùng bằng cách sử dụng ctime (thời gian tạo) của các tệp trên máy chủ. Ví dụ:

ls -lct 

hiển thị thời gian của mỗi tệp, được sắp xếp với lần đầu tiên gần đây nhất.

+9

Điều này không trả lời câu hỏi - xem câu trả lời của smoove bên dưới. –

+0

'git show' hiển thị ngày cam kết của nhánh hiện tại, không cần thiết cam kết mới nhất trong repo, hãy để một mình ngày lấy/lấy mới nhất. Tôi cũng khuyên bạn nên kiểm tra câu trả lời của smoove. – Stefaan

+1

Tôi cầu xin sự khác biệt. Điều này trả lời câu hỏi. Mặc dù nó không cung cấp cho bạn ngày kéo mới nhất, nó cung cấp cho bạn ngày cam kết là lần gần đây nhất khi bạn kéo lần cuối. Đối với trường hợp sử dụng trong câu hỏi ban đầu, điều này là hoàn toàn phù hợp. Bạn muốn biết khi nào bạn cập nhật lần cuối mã trên máy chủ thông qua lệnh git pull, tức là phiên bản của mã hiện có trên máy chủ. 'git show' cho bạn biết cam kết của bạn là bản sao cục bộ của bạn. (Tôi biết điều này là cũ, nhưng tôi đã kết thúc ở đây thông qua tìm kiếm.) – Dietmar

8

Trong kho không trống (và kho trống không có ý nghĩa đối với git pull), git ghi lại tất cả các thay đổi đối với mẹo chi nhánh và ý tưởng nhánh hiện tại trong "reflogs", trong .git/logs. Bạn có thể xem chúng bằng cách sử dụng git log -g.

Tuy nhiên, mặc dù các tệp nhật ký có dấu thời gian, nhưng dường như không git log -g sẽ in. Tuy nhiên, nếu bạn xem ví dụ .git/logs/HEAD, bạn sẽ thấy rằng định dạng khá đơn giản để phân tích cú pháp bao gồm nội dung ref (hoặc HEAD) đã thay đổi, thay đổi thành, ai đã thay đổi nó, khi nào và thông báo hoạt động .

94
stat -c %Y .git/FETCH_HEAD 

Sẽ cung cấp cho bạn dấu thời gian unix của sửa đổi cuối cùng của tệp đó. Git ghi tệp FETCH_HEAD mỗi khi bạn kéo hoặc tìm nạp, ngay cả khi không có gì để kéo.

+10

Dấu thời gian Unix của thời gian sửa đổi trên OSX: 'stat -f '% m' .git/FETCH_HEAD' – jpillora

+1

Hoặc nền tảng chéo sử dụng nút:' node - p 'require ("fs"). statSync ("./. git/FETCH_HEAD"). mtime.getTime()' ' – jpillora

+13

Git ghi FETCH_HEAD _before_ tìm nạp/kéo thực tế ... Vì vậy, nếu kéo không thành công hoặc bị hủy thì FETCH_HEAD sẽ không đại diện cho trạng thái lưu trữ thực tế. Điều này đặc biệt có vấn đề khi URL repo ban đầu không hoạt động, vì mọi lần kéo đều thất bại nhưng FETCH_HEAD sẽ được cập nhật trên mọi nỗ lực. – rustyx

17

Trên một linh cảm, tôi đã cố gắng "stat -c% so với .git/FETCH_HEAD", và nhận được một bản in của con người có thể đọc được hết thời gian:

> stat -c %y .git/FETCH_HEAD 
2015-02-24 17:42:08.072094410 -0500 

Bên cạnh đó, bạn có thể thêm when = !stat -c %y .git/FETCH_HEAD đến [alias] phần trong ~/file .gitconfig của bạn (đó là an toàn nhất để làm điều này tự động bằng cách chạy dòng lệnh sau đây trong bất kỳ repo git)

git config --global alias.when '!stat -c %y .git/FETCH_HEAD' 

và sau đó bạn có thể tìm thấy thông tin này với "lệnh" mới của bạn, bất cứ lúc nào :

> git when 
2015-02-23 15:07:53.086254218 -0500 

[Sau đó nó xảy ra với tôi để làm "man stat", và tôi thấy rằng có một loạt các tham số% khác có sẵn cho chương trình 'stat'. YMMV]

0

Sử dụng python:. python -c "import os;print os.stat('.git/FETCH_HEAD').st_mtime"

+0

cần một số định dạng, nhưng câu trả lời hoàn toàn hợp lệ cho freebsd trong đó stat không 't làm việc theo cách mô tả ở trên. – Endre

0
$ # for the latest pull even if there's nothing new 
$ stat -c %y .git/FETCH_HEAD 
2017-12-15 11:24:25.000000000 +0100 
$ 
$ # for records of updated references 
$ git reflog --date=iso 
db2bba84 (HEAD -> master, origin/master, origin/HEAD) [email protected]{2017-12-14 11:28:39 +0100}: pull: Fast-forward 
37fe73ad [email protected]{2017-12-03 17:09:32 +0100}: pull: Fast-forward 
c4107fcd [email protected]{2017-11-27 18:53:40 +0100}: clone: from https://github.com/macports/macports-base 
$ 
$ # for a more detailed view of the latter 
$ git log -g 
commit db2bba84d5e8cd82ec94a19129deb91ef62287bb (HEAD -> master, origin/master, origin/HEAD) 
Reflog: [email protected]{0} (me <[email protected]>) 
Reflog message: pull: Fast-forward 
Author: Ryan Schmidt <[email protected]> 
Date: Wed Dec 13 10:23:47 2017 -0600 

    portutil.tcl: Fix renames that supply the -force option 

    Treat $options as a list not as a string. 

    See: https://trac.macports.org/ticket/55492 

[snip] 
0

Theo đề nghị của người sử dụng: https://stackoverflow.com/users/83646/smoove, bạn có thể tìm thấy khi git pull lần cuối kêu gọi repo bằng cách kiểm tra các dấu thời gian sửa đổi: .git/FETCH_HEAD như: git ghi tệp .git/FETCH_HEAD mỗi khi bạn kéo hoặc tìm nạp, ngay cả khi không có gì để kéo.

Ví dụ: {} chủ vinegupt @ bhling69 (/imsgit_local/work/vinegupt/ims_18.5a/ims_common) $ stat -c% so với .git/FETCH_HEAD

2018-02-12 02:01: 50.487160386 +0530

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