Git 自用笔记

huoshen80
2025-12-03 / 1 评论 / 7 阅读 / 正在检测是否收录...

目录

Git 自用命令速查

1. 分支与合并 (Branching & Merging)

git branch                    # 列出所有本地分支 (当前分支用 * 标记)

git branch <name>             # 创建一个新的分支

git branch -d <name>          # 删除一个已经合并过的本地分支

git checkout <name>           # 切换到指定的分支

git checkout -b <name>        # 创建并立即切换到新的分支

git switch <name>             # 切换分支 (推荐新指令)

git merge <name>              # 将指定分支的更改合并到当前分支

git cherry-pick <commit_id>   # 将其他分支的特定提交"复制"并应用到当前分支

2. 撤销与修改 (Undo & Modify)

# 工作区与暂存区
git checkout -- <file>       # 撤销对工作区单个文件的修改

git restore <file>           # 丢弃工作区的修改 (新版本指令)

git reset HEAD <file>        # 将文件从暂存区移回工作区 (不撤销修改)

# 提交回滚
git reset --soft HEAD^       # 撤销最近一次提交,保留修改在暂存区 (适合修正提交)

git reset --hard <commit_id> # 回退到指定版本,丢弃所有后续修改 (慎用)

git revert <commit_id>       # 创建新提交来抵消旧提交 (安全,适合远程代码)
                             # 技巧: git revert -n 可回退代码但不自动 commit,便于检查

# 修改历史 (高级)
git commit --amend           # 修改最后一次提交的信息或追加修改
                             # 技巧: message 中加 [skip ci] 可跳过 WorkFlows

git rebase -i HEAD~n         # 交互式修改前 n 次的提交 (如 reword 改 message)

git push -f                  # 强制推送修改后的历史 (注意 Tag 不会自动随之移动)

git push --force-with-lease  # 更安全的强制推送,防止覆盖他人提交

# 救命指令
git reflog                   # 查看所有 HEAD 移动记录,找回被 reset 误删的 commit

3. 暂存 (Stash)

git stash      # 将当前修改 (暂存区+工作区) 临时保存

git stash pop  # 恢复最近一次保存的修改并从栈中删除

4. 远程与查看 (Remote & Inspection)

git remote -v     # 查看远程仓库地址

git pull          # 拉取远程代码并合并

git push          # 推送本地提交

git log           # 查看提交历史

git diff          # 查看差异(工作区与暂存区)

git diff --cached # 查看差异(暂存区与上次提交)

5. 标签管理 (Tagging)

git tag                          # 列出所有标签

git tag <name>                   # 给当前 commit 打轻量标签 (如 v1.0)

git tag -a <name> -m "msg"       # 打附注标签 (发布版本推荐)

git push origin --tags           # 推送本地所有标签到远程

git push origin :refs/tags/<name> # 删除远程标签

Git 远程仓库连接

git remote add origin https://github.com/username/my-project.git
git branch -M main
git push -u origin main # -u 它告诉 Git:"以后我的本地 main 分支就和远程的 origin/main 绑定了。"
git remote -v

Git commit 规范

1. 提交结构 (Format Structure)

一个完整的 Git Commit 消息应该包含标题 (Subject)正文 (Body)页脚 (Footer) 三个部分,各部分之间用空行分隔。

<type>(<scope>): <subject>

<body>

<footer>

2. 提交类型 (Type) - 必需

这是提交消息的第一个词,用于说明本次提交的目的。

Type描述 (中文)场景示例
feat新功能 (Feature)添加了用户登录功能。
fix修复 Bug (Bug Fix)修复了按钮点击时未响应的错误。
docs文档 (Documentation)仅修改了 README 或注释。
style代码风格 (Styling)格式化代码,移除多余空格,不影响代码逻辑。
refactor重构 (Refactoring)代码重构,既不属于新功能也不属于 Bug 修复。
test测试相关 (Testing)增加或修改了测试文件。
chore杂项/辅助 (Chore)修改构建流程、依赖升级、辅助工具配置等。

3. 标题行规则 (Subject Line)

标题行是提交摘要,应该简短明了,遵循以下规则:

规则说明示例
字数限制建议不超过 50 个字符 (方便日志查看)。feat(api): 增加用户注册接口
使用祈使句使用现在时、祈使句(像命令一样),而不是过去时。推荐:Fix bug / 避免:Fixed bug
小写开头提交类型后,主题描述请用小写字母开头。fix(auth): 修正密码校验逻辑
句末无点结尾不要加句号 .保持简洁。
Scope (可选)使用括号 () 标识此次修改影响的范围(如:api, ui, auth)。fix(layout): 修复移动端布局错位

4. 正文规则 (Body) - 可选

正文用于详细说明提交的细节,应遵循以下规则:

  • 分隔空行:标题行后必须留一个空行。
  • 解释原因:重点描述修改的原因和解决的问题(Why),而不仅仅是做了什么(What)。
  • 细节说明:描述设计思路、替代方案、或潜在的副作用。
  • 换行限制:建议每行不超过 72 个字符,以提高可读性。

5. 页脚 (Footer) - 可选

页脚通常用于关联 Issue 或标记重大变更。

  • 关联 Issue:引用相关的 Issue 编号。

    • Closes #123 (关闭 Issue 123)
    • Refs #456 (参考 Issue 456)
  • 重大变更 (Breaking Change):如果本次修改不兼容旧版本,必须在页脚以大写 BREAKING CHANGE: 开头进行说明。

示例

一个完整的、符合规范的提交消息可能如下所示:

feat(auth): 允许用户使用邮箱登录

这是本次更改的详细正文,解释了为什么需要增加邮箱登录功能。
原有的用户名登录限制性太强,为了优化用户体验,我们增加了兼容邮箱登录的校验。

本次修改包含了前端表单和后端API的变更。

BREAKING CHANGE: 移除了对旧版加密算法的支持。
Closes #123
0

评论 (1)

取消
  1. 头像
    Adore
    Android · Google Chrome

    好笔记,我抄

    回复