我想对存储库中的第一次提交添加更改。 我做了以下命令:
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)中的所有内容之外,其他所有内容都没有任何修改,而是将Date更新为新内容:
谁能告诉我如何改进它?预先谢谢你!
答案 0 :(得分:0)
只需确保不忽略您的最后一个参数,您可以使用以下命令重复序列吗?
git rebase --committer-date-is-author-date --onto new-root root
# instead of
git rebase --onto new-root root --committer-date-is-author-date
您首先需要使用git reflog
或git reset --hard ORIG_HEAD
恢复root
分支。
然后先使用以下方法检查重新设置基准前后根分支的作者/提交者日期:
git log --graph --pretty=format:"%aD --- %cD" root
答案 1 :(得分:0)
我认为您的新第一次提交(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
看到了该变量。