Git压缩提交或更改提交描述而不使用强制

e5njpo68  于 5个月前  发布在  Git
关注(0)|答案(1)|浏览(68)

我有一个不允许我使用强制的仓库。不幸的是,我犯了一个错误,用描述“提交”来提交。.这是我semestral项目的仓库,老师也会对git结构和提交消息进行评分。他告诉我,我可以以某种方式解决这个问题,而不使用武力。他说,我想合并提交,但我真的不知道怎么做。我有我试着用git rebase -i HEAD~1来做,但是它不工作,仍然需要强制推送。有人知道如何解决这个问题吗?

isr3a4wc

isr3a4wc1#

你的问题写得不清楚,因为如果你不能强制推送Git仓库中的任何分支,那么这似乎与你的老师的说法相冲突,“他告诉我,我可以以某种方式解决这个问题,而不使用武力。”正如你已经看到的,你必须强制推送才能从远程分支中删除提交。
话虽如此,这最终是答案,不管你能在你的仓库里做什么,以及你的老师实际上说了什么:
从分支中删除提交的唯一方法是重写分支。如果您已经推送了该分支,则必须执行以下操作之一:
1.用力推动分支。
1.删除远程分支并重新推送它。请注意,删除远程分支在技术上是强制推送它,所以这本质上是一样的。但是,如果你想这样描述它,你可以不使用“强制”这个词来完成它。
1.将重写的分支推到另一个远程分支名称。如果不能删除旧的分支,那么它将闲置在那里。
请注意,在许多repo中,通常会锁定某些共享分支,这样就没有人可以强制推送到这些特定分支,但仍然可以强制推送到个人正在进行的分支。您正在处理的repo可能没有这种功能,通常如果您无法强制推送个人分支,那么您可能也无法删除它,即使是暂时的。

**注:**您还提到:

他说我应该合并提交,但我真的不知道怎么做。
如果你已经推送了主题为“commit”的提交,那么你在本地合并时没有任何技巧可以阻止你选择上面的三个选项之一。也许你的老师没有意识到你已经推送了你想重写的提交。

相关问题