我有一堆旧的归档版本的文件从未在源代码控制中,我正在努力将其放入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'
所以现在repo显示这个提交是在更旧的日期,这是完美的。但是,这个提交(即使它的日期比其他提交要早得多)是主服务器上的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上查看repo时,master分支显示2001年的OLD提交而不是最新版本。我如何解决这个问题,以便最新的提交是HEAD?
我尝试使用提交ab8d0899...
进行硬重置,但基本上只是删除了2001提交。
是否有可能在不必“重新发送”最新文件的情况下完成此操作,只是为了让它再次成为HEAD?
答案 0 :(得分:2)
从技术上讲,您可以运行git rebase -i --root
。在rebase编辑器中,您可以交换提交。但是,您可能会遇到很多合并冲突。特别是如果您在提交了所有不同版本后执行此操作。
最干净的方式,恕我直言,实际上是删除并重新创建仓库,然后按时间顺序提交文件。即最后提交最新版本。