git的use-commit-times等效于什么?

我需要本地和服务器上文件的时间戳同步。这是通过Subversion实现的,方法是在配置中设置use-commit-times = true,以便每个文件的最后修改时间是在提交时。


每次克隆存储库时,我都希望文件的时间戳反映在远程存储库中上次更改的时间,而不是克隆存储库的时间。


有什么办法可以用git吗?


红颜莎娜
浏览 569回答 3
3回答

呼啦一阵风

但是,如果您真的想在结帐时使用提交时间作为时间戳,请尝试使用此脚本并将其(作为可执行文件)放置在文件$ GIT_DIR / .git / hooks / post-checkout中:#!/bin/sh -eOS=${OS:-`uname`}old_rev="$1"new_rev="$2"get_file_rev() {    git rev-list -n 1 "$new_rev" "$1"}if   [ "$OS" = 'Linux' ]then    update_file_timestamp() {        file_time=`git show --pretty=format:%ai --abbrev-commit "$(get_file_rev "$1")" | head -n 1`        touch -d "$file_time" "$1"    }elif [ "$OS" = 'FreeBSD' ]then    update_file_timestamp() {        file_time=`date -r "$(git show --pretty=format:%at --abbrev-commit "$(get_file_rev "$1")" | head -n 1)" '+%Y%m%d%H%M.%S'`        touch -h -t "$file_time" "$1"    }else    echo "timestamp changing not implemented" >&2    exit 1fiIFS=`printf '\t\n\t'`git ls-files | while read -r filedo    update_file_timestamp "$file"done但是请注意,此脚本将导致检出大型存储库的较大延迟(其中大型意味着大量文件,而不是大型文件)。
打开App,查看更多内容
随时随地看视频慕课网APP