8.0 KiB
8.0 KiB
tags, aliases, date created, date modified
| tags | aliases | date created | date modified | |
|---|---|---|---|---|
|
星期一, 十二月 8日 2025, 12:27:54 凌晨 | 星期一, 十二月 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)
日常工作遵循 Checkout / Add / Commit / Push 流程。
| 目的 | 命令 | 描述 |
|---|---|---|
| 暂存文件 | 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 |
创建本地标签并推送到远程仓库。 |
最佳实践提醒:
- 频繁提交 (Commit):保持提交的原子性和描述的清晰性。
- 拉取最新 (Pull):在创建新分支和开始工作前,务必
git pull origin develop。- 使用分支:永远在
feature/分支上工作。- SSH 密钥:确保您的 SSH 密钥正确配置,以避免重复输入密码。