Git commit file в прошлом, но не установить его в HEAD? - PullRequest
0 голосов
/ 15 мая 2018

У меня есть куча старых заархивированных версий файлов, которые никогда не были в контроле исходного кода, над которыми я работаю, помещая их в репозиторий Git на GitHub. Самая последняя версия файлов, которые я зафиксировал, уже в хранилище. Поэтому самая последняя версия в основной ветке - это 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 показывает OLD commit 2001 года вместо последней версии. Как мне исправить это, чтобы последний коммит был HEAD?

Я попытался сделать полный сброс с помощью коммита ab8d0899..., но по сути просто удалил коммит 2001 года.

Можно ли сделать это без необходимости «перекомпилировать» последний файл, чтобы снова сделать его ГОЛОВНОЙ?

1 Ответ

0 голосов
/ 15 мая 2018

Технически вы можете запустить git rebase -i --root.В редакторе rebase вы можете поменять коммиты.Однако вы, вероятно, столкнетесь с множеством конфликтов слияния.Особенно, если вы сделаете это после того, как вы зафиксировали все разные версии.

Самый чистый способ, IMHO, это на самом деле удалить и заново создать репо, а затем зафиксировать файлы в хронологическом порядке.Т.е. зафиксируйте последнюю версию последней.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...