11

所以我有一个文件:

...

some code here..

...

some unrelate code here..

...

我对其进行了以下更改:

...

some code here that needs to be changed a bunch..

...

some unrelated code here..

...

假设我正在对第一部分进行一些重大更改,并且我注意到后面部分中的错字。我想修正错字并提交并可能立即推动它,但我仍在处理第一部分,而不是阅读分享它。显然,我可以使用 git stash 或进行中间提交并修复另一个分支中的错字,但是有没有办法只将文件中的一些更改添加到暂存区域。显然,我可以解开错字,git add myfile然后重新修正错字,但如果错字修复更复杂,那可能会有点烦人。有没有办法指定我想添加的文件中的行git add

4

3 回答 3

17

-p标志将允许您选择要添加的文件的哪些部分。这里有一个流行的问题,它提供了有关补丁标志的更多详细信息。

于 2013-10-15T22:42:44.403 回答
8

从终端,git add --patchgit add --interactive可用于有选择地暂存更改以进行提交,即使在同一个文件中也是如此。

如果您更愿意使用图形工具,git gui可以通过右键单击差异,使用“stage hunk for commit”以及如果选择行,则使用“stage lines for commit”命令来选择性地暂存。

于 2013-10-15T23:08:11.430 回答
3

交互式分期

git add --interactive 

将允许您从已编辑的文件中选择舞台大块。

暂存更改

如果你有一点先见之明,你可以

git stash save 'typos'
// edit file
git commit -am 'fix'

git stash pop 

暂时“隐藏”的错字修复(又名搁置在其他 VCS 中)将合并回您的工作副本。


如果您有兴趣使用 Vim 来达到此目的,Vim 的逃犯具有更强大的功能。

于 2013-10-15T22:40:22.437 回答