Files
Inbox/Git/Git 常用命令总结与检索手册.md
2025-12-11 07:24:36 +08:00

87 lines
8.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
tags:
aliases:
- 📜 Git 常用命令总结与检索手册
date created: 星期一, 十二月 8日 2025, 12:27:54 凌晨
date modified: 星期一, 十二月 8日 2025, 12:35:01 凌晨
---
# 📜 Git 常用命令总结与检索手册
## I. 初始化与基础操作 (Initialization & Basics)
| 目的 | 命令 | 描述 |
| :--------------- | :------------------------------------------------ | :---------------------------------------------------------------------------------------------- |
| **创建新仓库** | `git init` | 在当前目录初始化一个空的 Git 仓库。 |
| **克隆远程仓库** | `git clone <url>` | 将远程仓库(如 Gitea完整地克隆到本地。 |
| **设置用户信息** | `git config --global user.name "Your Name"` | 设置全局用户名,用于 Commit 记录。 |
| | `git config --global user.email "your@email.com"` | 设置全局邮箱,用于 Commit 记录。 |
| **检查状态** | `git status` | 查看工作区 (Working Directory) 和暂存区 (Staging Area) 的状态,哪些文件已修改、已暂存、未追踪。 |
## II. 日常工作流 (Daily Workflow - C/A/C/P)
日常工作遵循 **C**heckout / **A**dd / **C**ommit / **P**ush 流程。
| 目的 | 命令 | 描述 |
| :--------------- | :----------------------------------------- | :--------------------------------------------------------- |
| **暂存文件** | `git add <file>` | 将文件从工作区添加到暂存区。 |
| | `git add .` | 暂存所有修改和新增文件(不包含删除)。 |
| **提交到本地库** | `git commit -m "Commit Message"` | 将暂存区内容提交到本地仓库,必须包含清晰的提交信息。 |
| **提交多行信息** | `git commit -m "Subject" -m "Body line 1"` | 创建包含多行 `body` 的提交信息。 |
| **推送到远程库** | `git push origin <branch>` | 将本地分支的提交推送到远程仓库。 |
| | `git push -u origin <branch>` | **初次推送**时使用,设置本地分支追踪远程分支。 |
| **拉取最新代码** | `git pull origin <branch>` | **(Fetch + Merge)** 拉取远程分支并自动合并到当前本地分支。 |
| **拉取并清理** | `git fetch --prune` / `git fetch -p` | 拉取远程更新,并删除本地已失效的远程跟踪引用。 |
## III. 分支管理 (Branch Management)
| 目的 | 命令 | 描述 |
| :----------------- | :-------------------------------- | :----------------------------------------------- |
| **查看本地分支** | `git branch` | 列出本地所有分支,当前分支前有 `*` 标记。 |
| **查看远程分支** | `git branch -r` | 列出所有远程跟踪分支。 |
| **创建新分支** | `git branch <name>` | 基于当前分支创建一个新分支。 |
| **创建并切换** | `git checkout -b <name>` | 创建新分支并立即切换到该分支(用于新功能开发)。 |
| **切换分支** | `git checkout <name>` | 切换到已存在的分支。 |
| **删除已合并分支** | `git branch -d <name>` | 安全地删除本地已合并的分支。 |
| **强制删除分支** | `git branch -D <name>` | 强制删除本地未合并的分支(请谨慎使用)。 |
| **删除远程分支** | `git push origin --delete <name>` | 删除远程仓库上的分支。 |
## IV. 代码历史与撤销 (History & Undo)
| 目的 | 命令 | 描述 |
| :----------------- | :------------------------ | :----------------------------------------------------------- |
| **查看提交历史** | `git log` | 查看完整的提交历史。 |
| **简洁历史** | `git log --oneline` | 以一行方式显示提交历史(常用)。 |
| **查看差异** | `git diff` | 查看工作区和暂存区之间的差异。 |
| | `git diff --staged` | 查看暂存区和本地仓库 HEAD 之间的差异。 |
| **撤销暂存** | `git reset HEAD <file>` | 将文件从暂存区移回工作区(取消 `git add`)。 |
| **撤销工作区修改** | `git restore <file>` | 丢弃工作区中对某个文件的所有修改(危险操作)。 |
| **重置到某一提交** | `git reset --soft <hash>` | 重置 HEAD 到指定提交,保留工作区和暂存区的修改。 |
| | `git reset --hard <hash>` | **危险操作:** 彻底重置 HEAD、暂存区和工作区丢弃所有修改。 |
| **合并提交** | `git rebase -i <ref>` | 交互式地合并、修改、删除历史提交(用于清理历史)。 |
## V. 合并与集成 (Merge & Rebase)
| 目的 | 命令 | 描述 |
| :---------------- | :--------------------------------------------------------------- | :----------------------------------------------------------- |
| **合并分支** | `git merge <branch>` | 将指定分支的更改合并到当前分支。 |
| **变基 (Rebase)** | `git rebase <branch>` | 将当前分支的提交移动到目标分支的最新提交之后,保持线性历史。 |
| **解决冲突** | `git status` -> **编辑文件** -> `git add <file>` -> `git commit` | 标准的冲突解决流程。 |
| **放弃 Rebase** | `git rebase --abort` | 取消正在进行的 `rebase` 操作,回到开始前的状态。 |
## VI. 协作工具 (Collaboration Tools)
| 目的 | 命令 | 描述 |
| :--------------- | :---------------------------------------------------- | :---------------------------------------------------- |
| **查看远程库** | `git remote -v` | 查看当前配置的远程仓库地址和名称(通常是 `origin`)。 |
| **设置上游分支** | `git branch --set-upstream-to=origin/<remote_branch>` | 为本地分支设置远程跟踪分支。 |
| **推送标签** | `git tag <tag-name>` -> `git push origin --tags` | 创建本地标签并推送到远程仓库。 |
---
> **最佳实践提醒:**
> 1. **频繁提交 (Commit)**:保持提交的原子性和描述的清晰性。
> 2. **拉取最新 (Pull)**:在创建新分支和开始工作前,务必 `git pull origin develop`。
> 3. **使用分支**:永远在 `feature/` 分支上工作。
> 4. **SSH 密钥**:确保您的 SSH 密钥正确配置,以避免重复输入密码。