你可以使用git add --patch <filename>
(或简称-p
),git 将开始将你的文件分解为它认为合理的 “帅哥”(文件的一部分)。然后它会提示您这个问题:
Stage this hunk [y,n,q,a,d,/,j,J,g,s,e,?]?
以下是每个选项的说明:
如果文件尚未存储在存储库中,则可以先执行git add -N <filename>
。之后你可以继续使用git add -p <filename>
。
之后,您可以使用:
git diff --staged
以检查您是否进行了正确的更改
git reset -p
to unstage 错误地添加了帅哥
git commit -v
在编辑提交消息时查看您的提交。
请注意,这与git format-patch
命令有很大不同,后者的目的是将提交数据解析为.patch
文件。
参考未来: https : //git-scm.com/book/en/v2/Git-Tools-Interactive-Staging
你可以使用git add --interactive
或git add -p < <em>file</em> >
,然后使用git commit
( 而不是 git commit -a
); 请参阅git-add联机帮助页中的交互模式 ,或者只需按照说明操作。
Modern Git 还有git commit --interactive
(和git commit --patch
,它是交互式提交中 patch 选项的快捷方式)。
如果您更喜欢从 GUI 进行,可以使用git-gui 。您只需标记要包含在提交中的块。我个人觉得比使用git add -i
更容易。其他 git GUI,如 QGit 或 GitX,也可能具有此功能。
git gui在 diff 视图下提供此功能。只需右键单击您感兴趣的行,您就会看到 “暂存此行提交” 菜单项。