git - 如何使用 SmartGit/Hg 只提交特定行

标签 git version-control commit staging smartgit

我正在使用 SmartGit/Hg。我编辑了一些文件来处理两个独立的新功能。现在,当我完成功能 A 的工作时,我想提交我的工作,但我不能只提交我所有编辑过的文件,因为它们包含对功能 B 的更改,我现在不想提交。

最佳答案

您可以使用 stage 来实现命令。首先,暂存 所有包含要提交的更改的文件。在此示例中,除了名为 DoNotCommit.php 的文件外,所有文件都至少包含我们要提交的一行:enter image description here

接下来,我们需要为所有包含特征 A特征 B索引编辑器>。在本例中,我们需要检查 Main.phpNewFeatures.php:enter image description here

这将打开索引编辑器。您会看到包含代码的三个选项卡:Repository (HEAD)IndexWorking Tree:enter image description here

对我们来说,只有Repository (HEAD)Index 选项卡很重要。 Repository (HEAD) 选项卡显示已提交的文件内容。 索引 选项卡显示我们将要提交的更改。假设我们只想提交第一 block 代码,使用 myNewCompletedFeature 函数:enter image description here

如您所见,我们从 Index 选项卡中删除了所有不想提交的代码。这不会工作树中删除代码,这意味着您不会丢失任何更改。现在我们对新的 NewFeatures.php 文件做同样的事情并再次保存:enter image description here

在最后一步中,我们将实际提交新功能。 确保在提交窗口中选择Staged Changes! enter image description here

哇,我们现在完成了!

关于git - 如何使用 SmartGit/Hg 只提交特定行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24386596/

相关文章:

linux - 如何创建 .git 文件

git - 无法在 Ubuntu 14.04 上使用 sublime text git 提交

ruby-on-rails - Git & Rails——我搞砸了,我能恢复到上次提交吗(删除模型/ Controller /迁移/代码)

version-control - Mercurial:无需先更改即可创建分支

svn - 对 git merge 使用单独的提交消息是否更好?

git - git 中跨分支的等效更改的簿记清理

GIT pull 失败 : 'unable to unlink file: invalid argument'

git - 在 Ubuntu box 上创建本地 Git 仓库

vimrc 自动提交带消息提示

php - 在 PHP 中使用带有循环的 MySQL 事务时出现问题