以下是一份常用的 Git 命令分类整理,适合日常开发使用和快速查阅:
1. 配置相关
# 设置全局用户名和邮箱
git config --global user.name "Your Name"
git config --global user.email "email@example.com"
# 查看当前配置
git config --list
# 设置仓库级别的配置(进入仓库目录后执行)
git config user.name "Your Name"
2. 仓库初始化与克隆
# 初始化新仓库
git init
# 克隆远程仓库
git clone https://github.com/user/repo.git
3. 分支操作
# 查看分支
git branch # 本地分支
git branch -a # 查看所有分支(包括远程)
# 创建分支
git branch <branch-name>
# 切换分支
git checkout <branch-name>
# 创建并切换分支
git checkout -b <branch-name>
# 删除分支
git branch -d <branch-name> # 安全删除(已合并的分支)
git branch -D <branch-name> # 强制删除(未合并的分支)
# 合并分支(将指定分支合并到当前分支)
git merge <branch-name>
# 合并分支(使用 rebase)
git rebase <branch-name>
4. 提交与日志
# 添加文件到暂存区
git add <file> # 添加单个文件
git add . # 添加所有修改和新文件(不包含删除)
git add -A # 添加所有修改(包括删除)
# 提交到本地仓库
git commit -m "commit message"
# 修改最后一次提交
git commit --amend # 修改提交信息或追加文件
# 查看提交历史
git log # 详细日志
git log --oneline # 单行显示
git log --graph # 图形化显示分支合并历史
git log -p # 显示具体修改内容
5. 远程仓库操作
# 添加远程仓库
git remote add origin https://github.com/user/repo.git
# 查看远程仓库信息
git remote -v
# 拉取远程分支更新
git pull origin <branch-name> # 拉取并合并
git fetch origin # 仅获取更新,不合并
# 推送本地分支到远程
git push origin <branch-name>
# 删除远程分支
git push origin --delete <branch-name>
# 设置本地分支跟踪远程分支
git branch --set-upstream-to=origin/<remote-branch> <local-branch>
6. 撤销与回退
# 撤销工作区的修改(未 add)
git checkout -- <file>
# 撤销暂存区的修改(已 add 但未 commit)
git reset HEAD <file>
# 回退到某个提交(保留工作区修改)
git reset --soft <commit-id>
# 回退到某个提交(重置暂存区,保留工作区)
git reset --mixed <commit-id> # 默认选项
# 强制回退到某个提交(丢弃所有修改)
git reset --hard <commit-id>
# 撤销某次提交(生成新提交)
git revert <commit-id>
7. 标签管理
# 创建标签
git tag v1.0.0 # 轻量标签
git tag -a v1.0.0 -m "消息" # 附注标签
# 查看标签
git tag
# 推送标签到远程
git push origin v1.0.0 # 推送单个标签
git push origin --tags # 推送所有标签
# 删除标签
git tag -d v1.0.0 # 删除本地标签
git push origin :refs/tags/v1.0.0 # 删除远程标签
8. 子模块(Submodule)
# 添加子模块
git submodule add https://github.com/user/repo.git path/to/submodule
# 初始化子模块
git submodule init
# 更新子模块代码
git submodule update
9. 暂存区临时保存(Stash)
# 保存当前工作区修改
git stash
# 查看保存的 stash 列表
git stash list
# 恢复最近一次 stash
git stash pop
# 清空所有 stash
git stash clear
10. 高级操作
# 二分查找问题提交
git bisect start
git bisect bad # 标记当前提交为有问题
git bisect good <commit-id> # 标记某个提交为正常
# 清理未跟踪的文件
git clean -fd # 强制删除未跟踪的文件和目录
# 重写提交历史(谨慎使用)
git filter-branch --tree-filter 'rm -f password.txt' HEAD
常用场景示例
合并冲突解决
- 执行
git merge
或git pull
后出现冲突。 - 手动编辑冲突文件(文件内会标记冲突位置)。
- 解决后执行
git add <file>
和git commit
。
强制推送(谨慎使用)
git push --force origin <branch-name> # 覆盖远程提交历史
注意事项
git reset --hard
会永久丢弃未提交的修改,慎用!- 推送代码前,建议先拉取最新代码(
git pull
)避免冲突。 - 使用
git reflog
可查看所有操作记录,用于恢复误操作。
希望这份整理能帮助你高效使用 Git!