0

我正在尝试将更改推送到远程服务器并遇到“更改已关闭”错误,那是因为尝试推送的更改 ID 与已推送的早期更改相同(不知道为什么相同),我尝试了要使用 .git/hook 生成新的提交消息,它会生成一个新的提交消息,但我的更改 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 ../..
4

2 回答 2

1

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

看起来更改已被放弃(从您上次更改中恢复Gerrit WebUI中的更改并重试push)或已提交/合并(pushcommit的新更改)。

于 2013-01-20T06:13:03.597 回答
1

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

git commit --amend

从消息中删除现有的更改 id,提交挂钩将为您创建一个新的。提交挂钩使用以下内容创建更改 ID:

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

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

于 2013-01-20T19:34:58.647 回答