推送后重写主/主分支上的最后一次提交消息?
Posted
技术标签:
【中文标题】推送后重写主/主分支上的最后一次提交消息?【英文标题】:Reword last commit message on master/main branch after pushing? 【发布时间】:2021-05-05 10:46:22 【问题描述】:我设法将一些带有糟糕提交消息的更改推送到我的主分支。 这是我的 git 命令序列:
git branch -b myperfectfeature
(i wrote excellent code)
git add .
git commit -m "Add awesom stuff"
git checkout main
git merge --ff-only myperfectfeature
git push origin main
然后我意识到我在提交消息中拼写错误。 我尝试使用以下方法改写提交消息:
git commit --amend
但是当我现在尝试推动时:
git push origin main -f
我收到以下错误:
! [remote denied] main -> main (pre-receive hook denied) 错误:未能将一些引用推送到 '.../myrepo.git'
我猜我的 GitLab 存储库不允许非快进推送 (?)。
有什么方法可以改写我在主分支上的最后一条提交消息并保留我的更改?
【问题讨论】:
分支可能被保护了,不能直接推送。 你没有收到来自 gitlab 的消息说分支受到保护吗? 是的,分支似乎被标记为“受保护”。如果没有办法恢复我的更改,我猜我只能忍受它,并且在未来更加小心。 【参考方案1】:如果您有权限,您可以更改设置以允许非快进强制推送。您也可以删除分支并重新推送它。
虽然技术上可以解决,但我建议您考虑是否值得。如果其他人已经拉出分支并且您重写提交,他们可能会遇到问题。既然你已经推送了,我宁愿不要把历史弄乱。
【讨论】:
以上是关于推送后重写主/主分支上的最后一次提交消息?的主要内容,如果未能解决你的问题,请参考以下文章