Mig*_*ing 22 version-control mercurial dvcs git-amend
有没有办法从远程变更集中删除a,或删除整个变更集?我意外地将.war文件推送到远程仓库,我想将其删除.
Mar*_*ler 33
Mercurial非常努力保证您的数据安全,因此您通常无法更改历史记录.
话虽如此,Mercurial有许多扩展,无论如何都可以让你轻松改变历史.维基上有一个关于编辑历史的页面.该页面还解释了后果.
在您的具体情况下,您必须问自己其他人是否已经取消了您的变更集?如果是这样,那么即使你删除它,它仍然会存在于他们的克隆中,你可能会更好地接受错误.
如果您决定将其删除,我建议hg clone您在没有它的情况下使用它.这是安全的方式,因为它总是会留下备份.如果您推[z]送到远程存储库:
[x] --- [y] --- [z]
Run Code Online (Sandbox Code Playgroud)
现在要删除它,然后登录到服务器并执行
hg clone -r y repo repo-without-z
Run Code Online (Sandbox Code Playgroud)
然后repo-without-z将包含所有更改[y]- 也就是说,[z]将被删除:
[x] --- [y]
Run Code Online (Sandbox Code Playgroud)
然后,您可以继续工作并推送新的变更集:
[x] --- [y] --- [w]
Run Code Online (Sandbox Code Playgroud)
如果我已经取消了[z]变更集,现在拉出来[w]我会在存储库中看到两个头:
[w]
/
[x] --- [y] --- [z]
Run Code Online (Sandbox Code Playgroud)
这本身并不危险 - 但人们可能会感到惊讶.如果我[z]从我的克隆中删除,我将最终得到与您相同的存储库.但是,如上所述,如果您有许多用户,这可能是不切实际的.
您还可以使用MQ扩展来就地删除变更集.这样你就不会成为一个新的克隆.
最后,如果您确定推送是服务器上最后一次操作,那么hg rollback可以用来删除最后一个事务.但如果您是唯一可以推送到存储库的人,请不要这样做,否则您最终可能会回滚另一个事务.
如果存储库位于Bitbucket上,则无法登录服务器.但Bitbucket最近在其网络界面上添加了条带功能.在"管理员"部分中查找"存储库管理".
jes*_*ern 13
到位桶并为您提供在剥离捆绑(备份),而这并没有计入配额.它似乎这样做的原因只是因为我们没有使缓存键无效,指定您使用多少空间.
这是我们系统中的一个错误,并将得到纠正.在此之前,请放心,更改集已被删除,备份是免费的:-)