I have an automated build tool that uses the modification date of the file in the output. Is there a way to "git touch" the file and save that to Git without having to actually modify the file?
            Asked
            
        
        
            Active
            
        
            Viewed 3.1k times
        
    30
            
            
        - 
                    3`git` doesn't even track file time stamps, except for commit time stamps, so the answer to this is going to be no. – twalberg Dec 12 '14 at 20:23
3 Answers
58
            I think what you need is touch command if you are on unix operating system.
Git can however allow you to do a empty commit if you use --allow-empty option.
Eg. $ git commit --allow-empty -m "Trigger notification" would cause an empty commit which you can then push and do another deploy.
 
    
    
        abhishek77in
        
- 1,848
- 21
- 41
8
            
            
        Git works on content hashes so it won't see your change and I doubt it has that functionality. I'd recommend that you echo the current date into that file rather than relying on modified date.
As a sideonote, relying on modification date is going to cause you many more problems as local time can be different between machines.
 
    
    
        Srdjan Grubor
        
- 2,605
- 15
- 17
- 
                    Thanks for the answer, I don't mind the local time issues since the only one that really matters is what the build machine sees, I am also only looking for the day things were modified. – DavidGamba Dec 12 '14 at 20:55
8
            
            
        This will update hash and timestamp of last commit, without any changing or message dialog.
git commit --amend --no-edit
 
    
    
        Pavel Shorokhov
        
- 4,485
- 1
- 35
- 44
- 
                    2
- 
                    @DavidG sure. Of course, you should not try to change the hash of already pushed commits. – Pavel Shorokhov Sep 25 '19 at 20:01
- 
                    4In order to change the timestamp (and hash) of the last commit, `git commit --amend --no-edit` didn't change the date of the last commit, but `git commit --amend --reset-author --no-edit` did. For more information, in `man git commit`: --reset-author When used with -C/-c/--amend options, or when committing after a conflicting cherry-pick, declare that the authorship of the resulting commit now belongs to the committer. This also renews the author timestamp. – Asensi Jun 10 '20 at 10:51
- 
                    1In order to change the timestamp of older commits, this was very useful: https://stackoverflow.com/questions/454734/how-can-one-change-the-timestamp-of-an-old-commit-in-git/31540373#31540373 – Asensi Jun 10 '20 at 10:53
