Łącząc odpowiedź Hugo (1) informacji znaleźć tutaj (2) i podrzucając w pewnym sed
, mam to:
alias newest="find . -path ./.git -prune -o -type f -exec stat -c \"%y %n\" '{}' + | sort -r | head -1 | sed s#'.*\./'##"
GIT_AUTHOR_DATE="$(newest | xargs date -u -r)" GIT_COMMITTER_DATE="$(newest | xargs date -u -r)" git commit -m "Old sources retaining old change-dates of last changed file: $(newest), actual commit date: $(date)"
Główną różnicą jest to, że ta wersja nie rekurencyjnego wyszukiwania, więc otrzymujesz najnowszy plik w dowolnym miejscu drzewa, ale celowo pomija katalog .git.
Możesz oczywiście upuścić jedną ze zmiennych daty tutaj i używam dość najnowszej wersji bash (4.2.37 (1) -release), więc notacja $() może nie działać dla ciebie (zamiast tego zastąp go backtickami (`)).
Czy próbowałeś zmienić zegar? =) Myślę, że to powinno działać lokalnie, ale nie wiem, co się stanie, gdy inni się połączą. – Kieveli
Znaczniki czasu nie mają znaczenia przy scalaniu. – Dustin