使用.git / hooks生成新的更改ID

时间:2013-01-20 05:51:56

标签: android git gerrit repository

我正在尝试将更改推送到远程服务器并运行到“更改已关闭”错误,这是因为更改-id am 尝试推送与早期已经推送的更改相同(不知道为什么会一样),我trid生成一个新的提交 使用.git / hook的消息,它生成一个新的commit-msg,但我的change-id仍然是相同的,我不能推, 关于为什么没有生成新的更改ID的任何输入?

<username:promt>git push ssh://repo.company.com:29418/platform/vendor/com-proprietary/radio HEAD:refs/for/master
Counting objects: 1852, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (688/688), done.
Writing objects: 100% (809/809), 1.37 MiB, done.
Total 809 (delta 678), reused 177 (delta 95)
remote: Resolving deltas: 100% (678/678)
remote: Processing changes: refs: 1, done    
To ssh://username@repo.company.com:29418/platform/vendor/com-proprietary/radio
 ! [remote rejected] HEAD -> refs/for/master (change 219386 closed)
error: failed to push some refs to 
'ssh://username@repo.company.com:29418/platform/vendor/com-proprietary/radio'

尝试使用下面的

生成更改ID
cd .git/hooks
scp -p -P 29418 username@repo.company.com:hooks/commit-msg .
cd ../..

2 个答案:

答案 0 :(得分:1)

! [remote rejected] HEAD -> refs/for/master (change 219386 closed)

看起来放弃了更改(还原更改 Gerrit WebUI 从上次更改并再次尝试push)或已提交/合并({{ 1}}你的push作为新的变化。)

答案 1 :(得分:1)

您运行以生成更改ID的命令仅将提交挂钩复制到您的存储库。现在你应该做

git commit --amend

从邮件中删除现有的更改ID,并且commit hook将为您创建一个新的更改ID。 commit hook使用以下命令创建change-id:

  • 正在提交的树的SHA-1
  • 父提交的SHA-1
  • 作者姓名,电子邮件地址,时间戳
  • 提交者的姓名,电子邮件地址,时间戳
  • 建议的提交消息(在插入Change-Id之前)

如果您更改其中任何一项,您将获得不同的ID。当然,最容易编辑提交消息。