我在一本书中找到了这个代码。正如它所告知的那样 - 每次更新代码时它可能会给出一些特定的时间戳。但正如我注意到它只是给出了最后一次提交的时间。有没有办法在不引用的情况下获取每个代码更新的当前时间?
import subprocess
from datetime import datetime
def get_git_changeset(absolute_path):
repo_dir = absolute_path
git_show = subprocess.Popen(
'git show --pretty=format:%ct --quiet HEAD',
stdout=subprocess.PIPE, stderr=subprocess.PIPE,
shell=True, cwd=repo_dir, universal_newlines=True,
)
timestamp = git_show.communicate()[0].partition('\n')[0]
try:
timestamp = \
datetime.utcfromtimestamp(int(timestamp))
except ValueError:
return ""
changeset = timestamp.strftime('%Y%m%d%H%M%S')
return changeset
更新:对于那些以某种方式登陆此页面的人 - 工作代码将替换前3行:
timestamp = max(map(lambda x: os.path.getmtime(x[0]), os.walk(absolute_path)))