在 Mercurial 分支之间移动未暂存 + 未提交的更改
Moving unstaged + uncommitted changes between Mercurial branches
我克隆了一个 Mercurial 存储库并做了很多本地工作,忘记为上述工作创建一个功能分支。
正常流量为:
- 克隆
- 创建分支
- 切换到那个分支
- 在那个分支做你的工作
- 推送那个分支
- 代码审查
- 如果代码审查通过,合并分支 w/
default
(本地)
- 将合并的更改推送到
default
- 关闭功能分支
所以我需要创建一个新分支,将我所有的 unstaged/uncommitted 代码更改(对 default
所做的)移植到这个分支(这样 default
现在是干净的并且新分支包含我的更改),然后推送我的功能分支。
我通过 hg branch new_feature
创建了新分支。但是在阅读了 Merucrial 文档之后,我想不出下一步。
所以我问:我如何移动(不仅仅是复制)我所有的 unstaged/uncommitted 更改从 default
到我的 new_feature
分支)?
你不应该做任何特别的事情。
您未提交的工作文件夹更改是流动的,您可以在提交前设置分支名称,而不会丢失您的更改。
如果您使用的是命令行,只需执行以下操作:
hg branch feature-X
hg commit -m "Added feature X"
如果您使用的是 TortoiseHg,只需单击提交消息输入字段正上方的 "Branch: default" 按钮和 select "Open a new named branch" 并为其命名,然后单击确定,然后提交正常。
设置提交期间要使用的分支名称实际上并不会更改您的工作文件夹,它不会进行更新,除了在元数据中记录分支名称应该是什么外,它什么都不做。
另请注意,这将只允许您创建一个要提交的新分支。如果您想 继续 在现有分支上,您首先需要更新到该分支的头部,这可能会导致您的工作文件夹发生变化。但是,如果您想创建一个新分支,则不需要这样做。
我克隆了一个 Mercurial 存储库并做了很多本地工作,忘记为上述工作创建一个功能分支。
正常流量为:
- 克隆
- 创建分支
- 切换到那个分支
- 在那个分支做你的工作
- 推送那个分支
- 代码审查
- 如果代码审查通过,合并分支 w/
default
(本地) - 将合并的更改推送到
default
- 关闭功能分支
所以我需要创建一个新分支,将我所有的 unstaged/uncommitted 代码更改(对 default
所做的)移植到这个分支(这样 default
现在是干净的并且新分支包含我的更改),然后推送我的功能分支。
我通过 hg branch new_feature
创建了新分支。但是在阅读了 Merucrial 文档之后,我想不出下一步。
所以我问:我如何移动(不仅仅是复制)我所有的 unstaged/uncommitted 更改从 default
到我的 new_feature
分支)?
你不应该做任何特别的事情。
您未提交的工作文件夹更改是流动的,您可以在提交前设置分支名称,而不会丢失您的更改。
如果您使用的是命令行,只需执行以下操作:
hg branch feature-X
hg commit -m "Added feature X"
如果您使用的是 TortoiseHg,只需单击提交消息输入字段正上方的 "Branch: default" 按钮和 select "Open a new named branch" 并为其命名,然后单击确定,然后提交正常。
设置提交期间要使用的分支名称实际上并不会更改您的工作文件夹,它不会进行更新,除了在元数据中记录分支名称应该是什么外,它什么都不做。
另请注意,这将只允许您创建一个要提交的新分支。如果您想 继续 在现有分支上,您首先需要更新到该分支的头部,这可能会导致您的工作文件夹发生变化。但是,如果您想创建一个新分支,则不需要这样做。