Git Commit


Git Commit 介绍

git commit 命令用于将工作区或暂存区的更改提交到版本库,形成可追踪的历史记录点。
它是 Git 工作流的核心操作,常用来保存代码的进展或完成阶段性开发。


基本用法

# 将暂存区内容提交到版本库,进入编辑器填写提交信息
git commit

# 将特定文件提交到版本库(需已被跟踪)
git commit [file1] [file2] [...]

# 将暂存区内容提交到版本库,同时直接添加提交信息(无需打开编辑器)
git commit -m "<message>"

# 跳过 git add,将所有已跟踪文件的更改提交到版本库
git commit -am "<message>"

# 替代上一次提交:
# - 若代码无更改,用于修改提交信息
# - 若代码有更改,将其合并到上一次提交
git commit --amend -m "<message>"

常用选项

参数说明
-m <message>指定提交信息,避免打开编辑器
-a提交所有已修改或删除的文件(限已被 Git 跟踪的文件)
--amend修改最近一次提交(包括内容或提交信息)
--no-edit不修改提交信息,直接沿用上次的提交消息

修改历史提交

修改最近一次提交

如果需要修改最近一次提交的内容或提交信息:

  1. 编辑文件,完成更改后添加到暂存区:
    git add <file-name>
    
  2. 使用 --amend 更新提交:
    git commit --amend
    

修改更早的提交

通过交互式变基(git rebase -i)修改历史提交:

  1. 启动交互式变基
    例如,修改最近 3 次提交:

    git rebase -i HEAD~3
    
  2. 编辑器中显示提交历史:

    pick 1234567 feat: 添加新功能
    pick 89abcde fix: 修复启动问题
    pick def7890 docs: 更新文档
    
  3. 将需要修改的提交改为 edit

    pick 1234567 feat: 添加新功能
    edit 89abcde fix: 修复启动问题
    pick def7890 docs: 更新文档
    
  4. 保存并退出。

  5. 修改文件并更新提交:

    git add <file-name>
    git commit --amend
    
  6. 完成修改后继续变基:

    git rebase --continue
    

最佳实践

  1. 编写清晰的提交信息
    遵循 Conventional Commits 格式:

    (): 
    <空行>
    
    <空行>
    

    示例:

    feat(app): 添加用户登录功能
    
    实现用户登录和身份验证。解决了之前登录状态丢失的问题。
    
    Closes #123
    
  2. 保持提交单一职责
    每次提交只包含一种逻辑更改(例如,修复一个 bug 或实现一个功能),避免混合提交。

  3. 修改已推送提交时的注意事项

    • 若已推送到远程分支,需使用 git push --force 强制覆盖。
    • 与团队协作时应谨慎,确保其他人未基于该提交工作。

总结

  • git commit 是 Git 的核心命令,通过合适的参数选项可以更高效地管理提交。
  • 选择适合的用法(如 --amendrebase)来优化历史提交,同时注意团队协作中的代码一致性。

文章作者: costalong
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 costalong !
评论
  目录
国庆
快乐