Изменения в первом коммите (без изменения даты) - PullRequest
0 голосов
/ 19 октября 2018

Я хотел добавить изменения в первый коммит в моем хранилище.Я сделал следующие команды:

git tag root `git rev-list HEAD | tail -1`
git checkout -b new-root root
// changes in code
git add .
GIT_COMMITTER_DATE="Mon Oct 1 22:36:58 2018 +0200"
git commit --amend --no-edit --date="Mon Oct 1 22:36:58 2018 +0200"
git checkout @{-1}
git rebase --onto new-root root --committer-date-is-author-date
git branch -d new-root
git tag -d root
git push origin master --force

Все работает, за исключением того, что в списке файлов (GitLab) те, которые не были изменены ни одним коммитом, имеют дату обновления как новую:

screenshot from GitLab

screenshot from GitLab

Может кто-нибудь сказать мне, как его улучшить?Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 21 октября 2018

Я предполагаю, что ваш новый первый коммит (new-root) был неверным.Эти команды устанавливают только дату автора, но не дату коммиттера, поскольку значение GIT_COMMITTER_DATE не распространяется на git commit.

GIT_COMMITTER_DATE="Mon Oct 1 22:36:58 2018 +0200"
git commit --amend --no-edit --date="Mon Oct 1 22:36:58 2018 +0200"

Самое простое решение - добавить конечный \, например такперед новой строкой:

GIT_COMMITTER_DATE="Mon Oct 1 22:36:58 2018 +0200" \
git commit --amend --no-edit --date="Mon Oct 1 22:36:58 2018 +0200"

Теперь git commit видит переменную.

0 голосов
/ 20 октября 2018

Просто чтобы убедиться, что ваш последний параметр не игнорируется, вы можете повторить последовательность с:

 git rebase --committer-date-is-author-date --onto new-root root 
 # instead of
 git rebase --onto new-root root --committer-date-is-author-date

Сначала вам нужно будет восстановить ветку root, используя git reflog или git reset --hard ORIG_HEAD.

Затем проверьте сначала даты автора / коммиттера вашей корневой ветки до и после перебазирования с помощью:

git log --graph --pretty=format:"%aD --- %cD" root
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...