2017-08-29 97 views
0

如果我想编辑已经推送到远程的过去提交,我如何测试我是否被允许强制推送而不实际更改任何内容?我如何测试是否允许强制推送?

要编辑过去的提交,我通常使用git rebase -i HEAD~N,然后将pick更改为edit我想进行更改。 如果我这样做,然后意识到我不允许强制推送,我需要重置我的工作空间(我想避免,因为我对提交所做的更改将会丢失)。

我知道在已经推送提交的情况下执行此操作可能是不好的做法。

有没有办法在我实际进行rebase之前进行测试?

+1

为什么“我对提交所做的更改”会丢失?您可以在重置之前创建一个指向它的分支。 – jingx

+0

是的,这似乎工作,谢谢 – rlsw

回答

2

唯一完全可靠的测试是否具有相应的权限X(对于某些任意X,往往甚至没有Git的相关)是试图做X,看看它是否成功。 “测试是否允许X,然后做X”的根本问题是答案可能在测试和尝试之间变化。 (有些系统支持要求,允许先可靠,但大多数人并不:最让你通过你得到它的时间到期的答案)

也就是说,Git的力量推权限由确定其他 Git,除了尝试以外,没有办法问它!你可以问其他Git最接近的问题是以其他系统特定的方式询问其他系统其Git,其中Git是。你最好的选择可能是创建一个临时分支,强制推送它,然后删除它。如果强制推送步骤成功,那么你知道你至少有权力在那一刻强制推送到那一个分支。

由于像GitHub这样的常用主机站点允许管理员“锁定”或“保护”某些特定的分支。这些工作的细节以及谁拥有什么权限,取决于那些托管站点。 Here is the GitHub page on their branch restriction options.

相关问题