git rebase
-
1.核心作用
(1)将一个分支的提交「复制」到另一个分支的末尾,形成线性提交历史。
(2) 常用于保持提交记录干净(如开发分支同步主分支更新后,通过 rebase 避免产生合并提交)。 -
2. 与 git merge 的对比
(1) git merge:创建一个新的「合并提交」(merge commit),保留分支分叉的历史。
(2)git rebase:通过复制提交到目标分支,保持线性历史(无合并提交)。
举例
- 将主分支提交全部放到自己分支的后面。假设当前在 feature 分支
git checkout feature
git rebase main # 将 main 分支的更新应用到 feature 分支
效果:feature 分支的提交会被复制到 main 分支的最新提交之后。
git commit --amend
-
1. 核心功能
(1)修改最近一次提交的提交信息或提交内容。
(2)不会创建新的提交,而是直接替换上一次提交(本质是创建一个新提交并让 HEAD 指向它)。
举例
(1)替换提交信息
git commit --amend -m "新的提交信息" # 直接替换提交信息
或
git commit --amend # 打开编辑器修改现有提交信息
如果在命令窗口直接打git commit --amend,会直接打开vim编辑模式,届时可以对提交信息进行更改,使得符合提交规范。
(2)追加遗漏文件
git add new_file.txt # 添加遗漏的文件
git commit --amend --no-edit # 追加到上次提交,不修改提交信息