Assuming you are getting updating/adding files when you do a git fetch
, you can create a git-rebase-and-touch script file that does the rebase for you along with touching all files/directories in each new revision.
The script would look like:
#!/bin/bash
saveIFS=${IFS}
IFS=$'\n'
startrev=$(git rev-parse HEAD)
git rebase
for rev in $(git rev-list --reverse ${startrev}..HEAD); do
stamp=$(git log --pretty="%aD" ${rev}~..${rev})
IFS=$'\n'
for filename in $(git diff --name-only ${rev}~..${rev}); do
file=""
IFS='/'
for part in ${filename}; do
file=${file}/${part}
file=${file#/}
touch -c --date="${stamp}" "${file}"
done
done
done
IFS=${saveIFS}
If you currently use git pull
now, use git fetch
instead.