Skip to content

Commit 06a90b6

Browse files
committed
docs: add instructions for splitting changes into multiple commits using git add -p
1 parent e0d0a2f commit 06a90b6

1 file changed

Lines changed: 55 additions & 0 deletions

File tree

docs/source/development/git.md

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -292,6 +292,61 @@ git reset --mixed commit_id # 移动HEAD指针,并把版本差异放进工作
292292
git reset # 默认 mixed 模式
293293
```
294294

295+
- 将一个文件的多处变更拆分为多个 commit
296+
297+
依次执行如下步骤:
298+
299+
1. 确保你的工作区是干净的,并且已经将想要拆分的文件修改完毕。
300+
301+
2. 执行交互式暂存命令:
302+
303+
```bash
304+
git add -p <文件名>
305+
```
306+
307+
或者,如果你想对所有修改过的文件进行操作,可以省略文件名:
308+
309+
```bash
310+
git add -p
311+
```
312+
313+
3. Git 会逐块(hunk)地显示你的更改,并询问你如何处理它。你会看到类似下面的提示:
314+
315+
```text
316+
Stage this hunk [y,n,q,a,d,s,e,?]?
317+
```
318+
319+
- y:暂存此区块。
320+
321+
- n:不暂存此区块。
322+
323+
- q:退出;不暂存这个区块和后面所有的区块。
324+
325+
- a:暂存这个区块和这个文件后面所有的区块。
326+
327+
- d:不暂存这个区块和这个文件后面所有的区块。
328+
329+
- s:分割这个区块。如果这个区块比较大,且包含多个逻辑变更,可以用这个选项将它拆分成更小的区块,然后再决定。
330+
331+
- e:手动编辑这个区块。这是最强大的选项,可以精确地选择要暂存哪些行。
332+
333+
4. 循环操作:对于第一个你想提交的功能,对所有相关的区块选择 y(或者 s 分割后选择 y)。对于不属于这个功能的区块,选择 n。
334+
335+
5. 完成第一次提交:
336+
337+
```bash
338+
git commit -m “提交信息:功能 A”
339+
```
340+
341+
6. 重复步骤 2-5:再次运行 git add -p,这次选择与第二个功能相关的区块进行暂存,然后完成第二次提交。
342+
343+
```bash
344+
git add -p <文件名>
345+
git commit -m “提交信息:功能 B”
346+
```
347+
348+
7. 检查结果:使用 git log --oneline 查看是否成功创建了多个 commit。
349+
295350
## 规范 Git 提交说明
296351

297352
使用 `git cz` 命令可以自动生成规范的 Git 提交,要使用该命令,需要以下几个步骤:

0 commit comments

Comments
 (0)