过去的 Git 提交文件,但没有将其设置为 HEAD?



我有一堆旧的存档版本,这些文件从未在源代码管理中,我正在努力将其放入GitHub上的Git存储库中。我已将文件的最新版本提交到存储库中。所以主分支中的最新版本是 HEAD:

commit ab8d0899d5d17968fde96e483bf19a5222a6d981 (HEAD -> master, origin/master)
Author: Me <me@gmail.com>
Date:   Mon May 14 13:17:53 2018 -0600
Initial commit with newest files

但是现在,我想使用创建它们的原始日期提交旧文件。我已经想出了如何做到这一点:

export GIT_COMMITTER_DATE="2001-11-03 00:00:00"
export GIT_AUTHOR_DATE="2001-11-03 00:00:00"
git commit -am 'Adding old file from 2001'

所以现在存储库显示此提交位于较旧的日期,这是完美的。但是,此提交(即使它的日期比其他提交早得多(是主服务器上的 HEAD 提交。

我的日志现在看起来像这样:

commit dbb7c6af9dac6dcf76614c2ac3506361b3ed5d95 (HEAD -> master)
Author: Me <me@gmail.com>
Date:   Sat Nov 3 00:00:00 2001 -0600
Adding old file from 2001
commit ab8d0899d5d17968fde96e483bf19a5222a6d981 (origin/master)
Author: Me <me@gmail.com>
Date:   Mon May 14 13:17:53 2018 -0600
Initial commit with newest files

因此,当我在 GitHub 上查看存储库时,master 分支显示 2001 年的 OLD 提交而不是最新版本。如何解决此问题,以便最新的提交是 HEAD?

我尝试使用提交ab8d0899...进行硬重置,但这基本上只是删除了 2001 年的提交。

是否可以在不"重新提交"最新文件只是为了再次使其成为 HEAD 的情况下完成此操作?

从技术上讲,您可以运行git rebase -i --root.在变基编辑器中,您可以交换提交。但是,您可能会遇到很多合并冲突。特别是如果您在提交所有不同版本后执行此操作。

恕我直言,最干净的方法实际上是删除并重新创建存储库,然后按时间顺序提交文件。 即最后提交最新版本。

最新更新