Can*_*eek 7 mercurial bitbucket
我将大量数据从我的实验室文件服务器复制到我的笔记本电脑,然后意外地将其提交到我用来备份我的论文的Mercurial存储库.
现在我有200多MB的数据,即使在我删除文件后,我也不需要在硬盘上占用空间.这不是一个真正的问题,但我同步的bitbucket存储库只给我1 GB的空间,我将需要我的数据.
愚蠢然后我删除的文件,并再次承诺,所以我不能只使用回退中描述/sf/answers/230336641/而无需创建一个新的存储库,并不必重新建立与到位桶的一切.
有没有办法解决这个问题,所以我不浪费我的存储库空间的四分之一?我可以回滚我做的最后两次提交吗?
我将描述如果我想回滚最近的两个提交我会做什么。
我假设您还没有推送到 Bitbucked。我还假设您的 DAG 之上有这些变更集:
o C: Deleted files FILE1 and FILE2
|
o B: Some nice changes; also added large files FILE1 and FILE2
|
o A: Some good changeset
Run Code Online (Sandbox Code Playgroud)
这里,C应该完全删除,B应该进行编辑(FILE1并且FILE2添加的内容应该回滚),并且A下面应该保持原样。
警告:这仅在B尚未C推送到 Bitbucked(或任何其他公共存储库)时才有效。
您需要启用 MQ 扩展才能执行此操作。为此,请将这些行添加到.hg/hgrc存储库中的文件中:
[extensions]
mq=
Run Code Online (Sandbox Code Playgroud)
首先,我剥离C:
$ hg strip C
Run Code Online (Sandbox Code Playgroud)
现在,C被删除,父级是B。我B作为 Mercurial Queues补丁导入来编辑它:
$ hg qimport -r B -n B.patch
Run Code Online (Sandbox Code Playgroud)
现在我的队列顶部有一个补丁,它是从B. 我删除大文件,然后刷新补丁:
$ hg forget FILE1 FILE2
$ hg qrefresh
Run Code Online (Sandbox Code Playgroud)
现在B.patch不再包含大文件。然而,它们仍然在磁盘上,尽管不受 Mercurial 控制。我现在完成了 MQ 的工作:
$ hg qfinish -a
Run Code Online (Sandbox Code Playgroud)
这是我目前所拥有的:
o B1: Some nice changes, no big files here
|
o A: Some good changeset
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2058 次 |
| 最近记录: |