diff --git a/docs/source/development/git.md b/docs/source/development/git.md index a22b5b4..c3d04f1 100644 --- a/docs/source/development/git.md +++ b/docs/source/development/git.md @@ -292,6 +292,61 @@ git reset --mixed commit_id # 移动HEAD指针,并把版本差异放进工作 git reset # 默认 mixed 模式 ``` +- 将一个文件的多处变更拆分为多个 commit + +依次执行如下步骤: + +1. 确保你的工作区是干净的,并且已经将想要拆分的文件修改完毕。 + +2. 执行交互式暂存命令: + +```bash +git add -p <文件名> +``` + +或者,如果你想对所有修改过的文件进行操作,可以省略文件名: + +```bash +git add -p +``` + +3. Git 会逐块(hunk)地显示你的更改,并询问你如何处理它。你会看到类似下面的提示: + +```text +Stage this hunk [y,n,q,a,d,s,e,?]? +``` + +- y:暂存此区块。 + +- n:不暂存此区块。 + +- q:退出;不暂存这个区块和后面所有的区块。 + +- a:暂存这个区块和这个文件后面所有的区块。 + +- d:不暂存这个区块和这个文件后面所有的区块。 + +- s:分割这个区块。如果这个区块比较大,且包含多个逻辑变更,可以用这个选项将它拆分成更小的区块,然后再决定。 + +- e:手动编辑这个区块。这是最强大的选项,可以精确地选择要暂存哪些行。 + +4. 循环操作:对于第一个你想提交的功能,对所有相关的区块选择 y(或者 s 分割后选择 y)。对于不属于这个功能的区块,选择 n。 + +5. 完成第一次提交: + +```bash +git commit -m “提交信息:功能 A” +``` + +6. 重复步骤 2-5:再次运行 git add -p,这次选择与第二个功能相关的区块进行暂存,然后完成第二次提交。 + +```bash +git add -p <文件名> +git commit -m “提交信息:功能 B” +``` + +7. 检查结果:使用 git log --oneline 查看是否成功创建了多个 commit。 + ## 规范 Git 提交说明 使用 `git cz` 命令可以自动生成规范的 Git 提交,要使用该命令,需要以下几个步骤: