如何将文件推送到过去的时间?

问题描述 投票:2回答:2

昨天,我对一个项目文件进行了修改,但忘记提交并推送到github上。我不希望我的连续贡献在51天后中断...所以我想把那个提交推送到昨天,这样我的连续贡献就会继续下去。这可能吗?

先谢谢你了

git github
2个回答
4
投票

我的路径里有一个脚本,叫做 git-rcd变化 GIT_COMMITTER_DATEGIT_AUTHOR_DATE 任何你想要的提交(不只是最后一个)

#!/bin/bash
# commit
# date YYYY-mm-dd HH:MM:SS

commit="$1" datecal="$2"
temp_branch="temp-rebasing-branch"
current_branch="$(git rev-parse --abbrev-ref HEAD)"

date_timestamp=$(date -d "$datecal" +%s)
date_r=$(date -R -d "$datecal")
echo "datecal=$datecal => date_timestamp=$date_timestamp date_r=$date_r"

if [[ -z "$commit" ]]; then
    exit 0
fi

git checkout -b "$temp_branch" "$commit"
GIT_COMMITTER_DATE="$date_timestamp" GIT_AUTHOR_DATE="$date_timestamp" git commit --amend --no-edit --date "$date_r"
git checkout "$current_branch"
git rebase --autostash --committer-date-is-author-date "$commit" --onto "$temp_branch"
git branch -d "$temp_branch"

这让我可以把我刚刚做的最后一次提交和输入。

git rcd @ '1 day ago'

然后输入: 我的最后一次提交已经在昨天完成了。

它可以改变任何你想要的提交。

git rcd @~2 '1 day ago'

那只会改变 HEAD~2 (而非 HEAD~HEAD)

该脚本即使在Windows上也能工作。

一旦更改完成,推送(或 git push --force 如果你之前推送的日期不对)。) 你的连胜就会被保留下来。


注(2020年)。David Fullerton 提及 在评论中:

需要在Mac OS X上运行。


1
投票

昨天,我对一个项目文件进行了修改,但忘了提交并推送到github上。

据我所知,GitHub 贡献图依赖于提交日期,而不是推送日期。顺便说一句,甚至有工具滥用这一点,把贡献图当作画板来使用(参见这个工具)。谷歌搜索).

所以简单的方法是

  • 现在就地投入

  • 然后重写你的最新提交,更改作者日期 (选择你喜欢的时间和时区),比如说 git commit --amend --date="Wed Jul 12 14:17 2014 +0900"

  • 推动

© www.soinside.com 2019 - 2024. All rights reserved.