惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

宝玉的分享
宝玉的分享
NISL@THU
NISL@THU
E
Exploit-DB.com RSS Feed
L
LINUX DO - 热门话题
L
Lohrmann on Cybersecurity
K
Kaspersky official blog
Project Zero
Project Zero
Cisco Talos Blog
Cisco Talos Blog
T
The Exploit Database - CXSecurity.com
P
Palo Alto Networks Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
T
Threatpost
S
Schneier on Security
G
GRAHAM CLULEY
The Hacker News
The Hacker News
T
Threat Research - Cisco Blogs
Scott Helme
Scott Helme
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
P
Privacy & Cybersecurity Law Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
Cyberwarzone
Cyberwarzone
C
CERT Recently Published Vulnerability Notes
T
Tor Project blog
AWS News Blog
AWS News Blog
Simon Willison's Weblog
Simon Willison's Weblog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
爱范儿
爱范儿
P
Privacy International News Feed
云风的 BLOG
云风的 BLOG
P
Proofpoint News Feed
S
Securelist
G
Google Developers Blog
The Last Watchdog
The Last Watchdog
Google Online Security Blog
Google Online Security Blog
美团技术团队
F
Fortinet All Blogs
小众软件
小众软件
Recorded Future
Recorded Future
V
Visual Studio Blog
B
Blog RSS Feed
H
Help Net Security
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Google DeepMind News
Google DeepMind News
Blog — PlanetScale
Blog — PlanetScale
博客园 - 聂微东
Stack Overflow Blog
Stack Overflow Blog
Martin Fowler
Martin Fowler
Latest news
Latest news
Spread Privacy
Spread Privacy
H
Heimdal Security Blog

博客园 - 草木物语

Day2: Prompt Engineering 与结构化输出 - 草木物语 三招优化电脑瞬间变流畅 Hutool 的 HttpUtil.post() 方法在高并发场景下的线程安全问题 从技术大牛到管理新手:那些让你痛苦的转换期,终会成为你的铠甲 AI的"半衰期"陷阱 越用AI我能力越差? AI时代的"认知差异陷阱" 教育在AI时代,得重新来过 AI都能写作业了,孩子还要不要学习? AI 时代,你的孩子要学会这些 java17 有什么好用的特性 vue2,vue3 父子组件交互 props,emit,slot vue3 ref()和reactive() 软件工程-第七章第七节 组织 软件工程-六 谁是解结的人 软件工程-软件工程层状模型(EHM) 软件工程-五 过程 软件工程-三 团队缺乏的不只是管理 软件工程-四 流于形式的沟通 Netty ChannelHandler的生命周期 Netty 客户端与服务端收发消息demo
Git 提交 与 修正提交
草木物语 · 2026-01-28 · via 博客园 - 草木物语

本文由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% 的日常提交场景。