Наша установка разработки имеет вид:
код пользователя ==> репозиторий gerrit ==> репозиторий DEV ==> репозиторий INT
Когда я пытаюсь отправить свой код в репозиторий gerrit, выдается следующая ошибка:
git/master% git push gerrit HEAD:refs/for/master
Counting objects: 7, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (7/7), done.
Writing objects: 100% (7/7), 1.05 KiB | 1.05 MiB/s, done.
Total 7 (delta 3), reused 3 (delta 0)
remote: Resolving deltas: 100% (3/3)
remote: Processing changes: refs: 1, done
remote: ERROR: [1688e36] missing Change-Id in commit message footer
remote:
remote: Hint: To automatically insert Change-Id, install the hook:
remote: gitdir=$(git rev-parse --git-dir); scp -p -P 29418 use_abc@rbcm-
gerrit.abc.mno.com:hooks/commit-msg ${gitdir}/hooks/
remote: And then amend the commit:
remote: git commit --amend
remote:
To ssh://abcd.mno.com:29418/datacompiler/DataCompilerDevelopment
! [remote rejected] HEAD -> refs/for/master ([1688e36] missing Change-Id
in commit message footer)
error: failed to push some refs to 'ssh://user_abc@mno-
gerrit.abc.mno.com:29418/datacompiler/DataCompilerDevelopment'
Я понял из сообщения об ошибке, что проблема "[1688e36] missing Change-Id in commit message footer"
Т.е. в одном из старых коммитов отсутствует Change-Id, который необходим при нажатии на gerrit.
Когда я гуглил, я обнаружил, что перебазировка - это метод исправления старого сообщения о коммите. (git amend
используется для последней модификации сообщения коммита. Но в моем случае исправляемое сообщение довольно старое)
Когда я пытаюсь выполнить перебазирование, я теряю другие коммиты при этом коммите.
git rebase -i HEAD~5
pick a09061420 commit message 1.
pick 046316704 commit message 2.
pick b5df179e7 commit message 3.
pick b58fc9c41 commit message 4.
pick 646bc8899 commit message 5.
Я хочу изменить commit message 4.
Я сделал модификацию, как показано ниже:
pick a09061420 commit message 1.
pick 046316704 commit message 2.
pick b5df179e7 commit message 3.
reword b58fc9c41 updated commit message 4.
pick 646bc8899 commit message 5.
Я сохранил файл и нажал его.
Но я теряю коммиты с 1-3.
Буду признателен за любую помощь!