git changes modification time of files

Posted by tanascius on Stack Overflow See other posts from Stack Overflow or by tanascius
Published on 2010-02-11T11:17:01Z Indexed on 2010/05/12 15:14 UTC
Read the original article Hit count: 228

Filed under:

In the GitFaq I can read, that

Git sets the current time as the timestamp on every file it modifies, but only those.

However, I tried this command sequence (EDIT: added complete command sequence)

$ git init test && cd test
Initialized empty Git repository in d:/test/.git/

exxxxxxx@wxxxxxxx /d/test (master)
$ touch filea fileb

exxxxxxx@wxxxxxxx /d/test (master)
$ git add .

exxxxxxx@wxxxxxxx /d/test (master)
$ git commit -m "first commit"
[master (root-commit) fcaf171] first commit
 0 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 filea
 create mode 100644 fileb

exxxxxxx@wxxxxxxx /d/test (master)
$ ls -l > filea

exxxxxxx@wxxxxxxx /d/test (master)
$ touch fileb -t 200912301000

exxxxxxx@wxxxxxxx /d/test (master)
$ ls -l
total 1
-rw-r--r--    1 exxxxxxx Administ      132 Feb 12 18:36 filea
-rw-r--r--    1 exxxxxxx Administ        0 Dec 30 10:00 fileb

exxxxxxx@wxxxxxxx /d/test (master)
$ git status -a
warning: LF will be replaced by CRLF in filea
# On branch master
warning: LF will be replaced by CRLF in filea
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       modified:   filea
#

exxxxxxx@wxxxxxxx /d/test (master)
$ git checkout .

exxxxxxx@wxxxxxxx /d/test (master)
$ ls -l
total 0
-rw-r--r--    1 exxxxxxx Administ        0 Feb 12 18:36 filea
-rw-r--r--    1 exxxxxxx Administ        0 Feb 12 18:36 fileb

Now my question: Why did git change the timestamp of file fileb? I'd expect the timestamp to be unchanged.

Are my commands causing a problem?
Maybe it is possible to do something like a git checkout . --modified instead?

I am using git version 1.6.5.1.1367.gcd48 under mingw32/windows xp.

© Stack Overflow or respective owner

Related posts about git