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: 修复 bug
  • docs: 仅修改文档
  • style: 仅格式调整(不影响代码逻辑)
  • refactor: 重构代码(既不新增功能也不修复 bug)
  • test: 添加测试
  • chore: 构建 / 工具类变更

 

二、修正提交(提交后发现问题)

修正提交主要针对「已提交但未推送到远程」的场景(推送到远程后修正需谨慎),核心是 git commit --amendgit 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

 

总结

  1. 常规提交:核心是 git add . + git commit -m "规范信息",两步完成本地提交。
  2. 修正未推送的提交:优先用 git commit --amend(改信息 / 补文件)或 git reset --soft HEAD^(撤销提交保留修改)。
  3. 修正已推送的提交:多人协作时优先「新增提交修正」,非必要不使用 git push --force(避免改写公共历史)。
这些是 Git 提交和修正提交的核心用法,新手先掌握 git add .git commit -mgit commit --amend 这三个命令,就能覆盖 80% 的日常提交场景。
posted @ 2026-01-28 16:07  草木物语  阅读(46)  评论(0)    收藏  举报