Git 提交 与 修正提交
本文由ai编写
一、Git 常规提交(基础流程)
常规提交是 Git 最核心的操作之一,完整流程分为「暂存文件」和「提交变更」两步,确保变更被记录到版本库中。
1. 基础操作步骤
# 1. 查看工作区状态(可选,确认修改的文件)
git status
# 2. 将修改的文件添加到暂存区(跟踪变更)
# 方式1:添加指定文件
git add 文件名.py 文件名.md
# 方式2:添加所有修改/新增的文件(推荐,避免漏加)
git add .
# 3. 提交暂存区的变更到本地版本库
# -m 后紧跟提交信息(必须写,且要清晰描述本次修改)
git commit -m "feat: 新增用户登录功能"
2. 规范提交信息(最佳实践)
提交信息建议遵循「类型:描述」的格式,方便后续追溯:
feat: 新增功能fix: 修复 bugdocs: 仅修改文档style: 仅格式调整(不影响代码逻辑)refactor: 重构代码(既不新增功能也不修复 bug)test: 添加测试chore: 构建 / 工具类变更
二、修正提交(提交后发现问题)
修正提交主要针对「已提交但未推送到远程」的场景(推送到远程后修正需谨慎),核心是
git commit --amend 和 git reset。场景 1:提交后发现漏加文件 / 提交信息写错
核心命令:
git commit --amend(修改最后一次提交,不会新增提交记录)# 情况1:仅修改提交信息
git commit --amend -m "fix: 修复登录时密码加密的bug"
# 情况2:漏加文件(先把漏加的文件加入暂存区,再修正提交)
git add 漏加的文件.py
# --no-edit 表示不修改原有提交信息,只补充文件
git commit --amend --no-edit
场景 2:提交后发现代码错误,想撤销提交但保留修改
如果提交后发现代码有问题,想回到「提交前」的状态(修改保留),用
git reset --soft:# HEAD^ 表示「上一次提交」,--soft 保留工作区和暂存区的修改
git reset --soft HEAD^
# 此时修改还在,修正代码后重新提交即可
git add .
git commit -m "fix: 修正xxx错误"
场景 3:已推送到远程的提交需要修正(慎用)
如果提交已经推送到远程仓库,修正后需要强制推送(会改写远程提交历史,多人协作时务必确认没人基于该提交开发):
# 先本地修正提交(amend)
git commit --amend -m "fix: 修正推送后的bug"
# 强制推送覆盖远程(多人协作慎用!)
git push --force 远程仓库名 分支名
# 示例:git push --force origin main
✅ 更安全的替代方案(推荐多人协作时用):
不改写历史,直接新增一个提交修正问题:
不改写历史,直接新增一个提交修正问题:
# 修正代码后,新增提交
git add .
git commit -m "fix: 修正上一次提交的xxx问题"
# 正常推送即可(不会影响他人)
git push
总结
- 常规提交:核心是
git add .+git commit -m "规范信息",两步完成本地提交。 - 修正未推送的提交:优先用
git commit --amend(改信息 / 补文件)或git reset --soft HEAD^(撤销提交保留修改)。 - 修正已推送的提交:多人协作时优先「新增提交修正」,非必要不使用
git push --force(避免改写公共历史)。
这些是 Git 提交和修正提交的核心用法,新手先掌握
git add .、git commit -m、git commit --amend 这三个命令,就能覆盖 80% 的日常提交场景。
浙公网安备 33010602011771号