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

时间:2014-07-13 12:20:33

标签: git github

昨天,我对项目文件进行了更改,但忘了提交并将其推送到github上。我不希望51天之后我的贡献连续破裂。所以我想把这个提交推到昨天,以便我的连续性继续......这可能吗?

非常感谢你!

2 个答案:

答案 0 :(得分:3)

我的路径中有一个名为 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'

并且presto!我昨天的承诺现在已经完成了。

它会更改您想要的任何提交:

git rcd @~2 '1 day ago'

这只会改变HEAD~2(而不是HEAD~HEAD

该脚本甚至可以在Windows上运行。

更改完成后,按(或git push --force如果您之前按错了日期)。而且你的连胜也得以保留。

答案 1 :(得分:1)

  

昨天,我对项目文件进行了更改,但忘了提交并在github上推送

据我所知,GitHub贡献图依赖于提交日期时间,而不是推送日期时间。 FWIW,甚至有滥用此工具的工具将贡献图用作绘图板(参见 google search )。

所以简单的方法是

  • 现在提交本地

  • 然后使用git commit --amend --date="Wed Jul 12 14:17 2014 +0900"

  • 等内容重写您的最新提交以更改作者日期(选择您喜欢的时间和时区)