--- 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 ` | 将远程仓库(如 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 ` | 将文件从工作区添加到暂存区。 | | | `git add .` | 暂存所有修改和新增文件(不包含删除)。 | | **提交到本地库** | `git commit -m "Commit Message"` | 将暂存区内容提交到本地仓库,必须包含清晰的提交信息。 | | **提交多行信息** | `git commit -m "Subject" -m "Body line 1"` | 创建包含多行 `body` 的提交信息。 | | **推送到远程库** | `git push origin ` | 将本地分支的提交推送到远程仓库。 | | | `git push -u origin ` | **初次推送**时使用,设置本地分支追踪远程分支。 | | **拉取最新代码** | `git pull origin ` | **(Fetch + Merge)** 拉取远程分支并自动合并到当前本地分支。 | | **拉取并清理** | `git fetch --prune` / `git fetch -p` | 拉取远程更新,并删除本地已失效的远程跟踪引用。 | ## III. 分支管理 (Branch Management) | 目的 | 命令 | 描述 | | :----------------- | :-------------------------------- | :----------------------------------------------- | | **查看本地分支** | `git branch` | 列出本地所有分支,当前分支前有 `*` 标记。 | | **查看远程分支** | `git branch -r` | 列出所有远程跟踪分支。 | | **创建新分支** | `git branch ` | 基于当前分支创建一个新分支。 | | **创建并切换** | `git checkout -b ` | 创建新分支并立即切换到该分支(用于新功能开发)。 | | **切换分支** | `git checkout ` | 切换到已存在的分支。 | | **删除已合并分支** | `git branch -d ` | 安全地删除本地已合并的分支。 | | **强制删除分支** | `git branch -D ` | 强制删除本地未合并的分支(请谨慎使用)。 | | **删除远程分支** | `git push origin --delete ` | 删除远程仓库上的分支。 | ## IV. 代码历史与撤销 (History & Undo) | 目的 | 命令 | 描述 | | :----------------- | :------------------------ | :----------------------------------------------------------- | | **查看提交历史** | `git log` | 查看完整的提交历史。 | | **简洁历史** | `git log --oneline` | 以一行方式显示提交历史(常用)。 | | **查看差异** | `git diff` | 查看工作区和暂存区之间的差异。 | | | `git diff --staged` | 查看暂存区和本地仓库 HEAD 之间的差异。 | | **撤销暂存** | `git reset HEAD ` | 将文件从暂存区移回工作区(取消 `git add`)。 | | **撤销工作区修改** | `git restore ` | 丢弃工作区中对某个文件的所有修改(危险操作)。 | | **重置到某一提交** | `git reset --soft ` | 重置 HEAD 到指定提交,保留工作区和暂存区的修改。 | | | `git reset --hard ` | **危险操作:** 彻底重置 HEAD、暂存区和工作区,丢弃所有修改。 | | **合并提交** | `git rebase -i ` | 交互式地合并、修改、删除历史提交(用于清理历史)。 | ## V. 合并与集成 (Merge & Rebase) | 目的 | 命令 | 描述 | | :---------------- | :--------------------------------------------------------------- | :----------------------------------------------------------- | | **合并分支** | `git merge ` | 将指定分支的更改合并到当前分支。 | | **变基 (Rebase)** | `git rebase ` | 将当前分支的提交移动到目标分支的最新提交之后,保持线性历史。 | | **解决冲突** | `git status` -> **编辑文件** -> `git add ` -> `git commit` | 标准的冲突解决流程。 | | **放弃 Rebase** | `git rebase --abort` | 取消正在进行的 `rebase` 操作,回到开始前的状态。 | ## VI. 协作工具 (Collaboration Tools) | 目的 | 命令 | 描述 | | :--------------- | :---------------------------------------------------- | :---------------------------------------------------- | | **查看远程库** | `git remote -v` | 查看当前配置的远程仓库地址和名称(通常是 `origin`)。 | | **设置上游分支** | `git branch --set-upstream-to=origin/` | 为本地分支设置远程跟踪分支。 | | **推送标签** | `git tag ` -> `git push origin --tags` | 创建本地标签并推送到远程仓库。 | --- > **最佳实践提醒:** > 1. **频繁提交 (Commit)**:保持提交的原子性和描述的清晰性。 > 2. **拉取最新 (Pull)**:在创建新分支和开始工作前,务必 `git pull origin develop`。 > 3. **使用分支**:永远在 `feature/` 分支上工作。 > 4. **SSH 密钥**:确保您的 SSH 密钥正确配置,以避免重复输入密码。