我正在使用 SmartGit/Hg。我编辑了一些文件来处理两个独立的新功能。现在,当我完成功能 A 的工作时,我想提交我的工作,但我不能只提交我所有编辑过的文件,因为它们包含对功能 B 的更改,我现在不想提交。
最佳答案
您可以使用 stage 来实现命令。首先,暂存 所有包含要提交的更改的文件。在此示例中,除了名为 DoNotCommit.php
的文件外,所有文件都至少包含我们要提交的一行:
接下来,我们需要为所有包含特征 A和特征 B索引编辑器>。在本例中,我们需要检查 Main.php
和 NewFeatures.php
:
这将打开索引编辑器。您会看到包含代码的三个选项卡:Repository (HEAD)、Index、Working Tree:
对我们来说,只有Repository (HEAD) 和Index 选项卡很重要。 Repository (HEAD) 选项卡显示已提交的文件内容。 索引 选项卡显示我们将要提交的更改。假设我们只想提交第一 block 代码,使用 myNewCompletedFeature
函数:
如您所见,我们从 Index 选项卡中删除了所有不想提交的代码。这不会从工作树中删除代码,这意味着您不会丢失任何更改。现在我们对新的 NewFeatures.php
文件做同样的事情并再次保存:
在最后一步中,我们将实际提交新功能。 确保在提交窗口中选择Staged Changes!
哇,我们现在完成了!
关于git - 如何使用 SmartGit/Hg 只提交特定行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24386596/