前言

应团队要求, 提交内容必须符合管理规定, 保持清晰。 但有些时候, 在自己分支开发的时候, 往往写着写着就写嗨了, 造成本来不应该在同一个提交里的改动与更新出现在同一份文件中, 而git add 又是以单个文件为单位的提交, 不符合团队提交规范。
因此, 解决这个问题, 需要用到git add -p对更改做拆分, 可以选择性的把需要的内容加入至暂存区, 然后就可以commit了。

‘git add -p’ 的使用

使用此指令提交后, 需要知道以下这些子操作的含义, 以便进一步处理:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
y - 取了
n - 不取
q - 我不干了,啥也别add,退出吧
a - 取了这个和此文件后续所有的
d - 这个不取了,此文件后续所有的我也不取了
g - 搜索以跳到某个hunk
/ - 以正则搜索某个hunk
j - 这个未决, 并跳到下一个未决hunk
J - 这个未决, 并跳到下一个hunk
k - 这个未决, 并跳到上一个未决hunk
K - 这个未决, 并跳到上一个hunk
s - 这个hunk太大了,拆分成更小的hunks吧
e - 手动编辑当前hunk
? - 显示当前帮助信息(当你不记得这些缩写是什么意思时相当有用)

而本人常用的就是 y,n,s,q,d这几个操作了。

参考

https://git-scm.com/book/en/v2/Git-Tools-Interactive-Staging

https://ttys3.dev/post/git-how-to-commit-only-parts-of-a-file/