我有一个本地mercurial存储库,其中有5个提交仍然需要推送到服务器.但是,我在最后4次提交中意外地在两个特定文件中包含了一行,我真的不想在那里(也没有一个更改集).
有没有任何实用的方法来删除这两个文件中的那些行?(除了丢弃我的本地存储库,克隆服务器的副本,并再次手动重新应用所有更改)
您将获得许多不同的建议(mq,histedit,import/export),这些建议基本上都是相同的.而且他们都会感到非常笨重,因为mercurial是围绕着不可变历史的概念建立的 - 改变历史应该很难.也就是说,正如您正确理解的那样,如果您尚未推出cset,那么这是可能的.这是我使用的程序 - 我更喜欢它,因为它要求不启用扩展:
hg export --git -o ../all-five-csets.patch 0:tip
cd .. # exit the repo
vi all-five-csets.patch # delete the line manually each time it appears (probably only once)
hg init newrepo
cd newrepo
hg import ../all-five-csets.patch
cd ..
mv repo was-repo
mv newrepo repo
Run Code Online (Sandbox Code Playgroud)
所有发生的事情都是将csets导出为自己的文本表示.创建一个新的空repo,然后重新导入csets.我做了所有这些因为你只有五个.如果你正在考虑改变500的最后5个,我会创建newrepo,通过执行一个clone -r克隆"达到一个点",然后通过导入应用我留下的csets在他们编辑的形式中.
| 归档时间: |
|
| 查看次数: |
119 次 |
| 最近记录: |