首页 开发工具 正文
  • 本文约3970字,阅读需20分钟
  • 12
  • 0

Git 终极命令手册(完全整合版)

摘要

Git 终极命令手册(完全整合版) 一、基础初始化与配置 # 仓库初始化 git init --template= template_directory # 使用自定义模板初始化 git init --bare directory # 创建裸仓库(共享仓库) git clone --mirror url ...

一、基础初始化与配置
# 仓库初始化
git init --template=<template_directory>  # 使用自定义模板初始化
git init --bare <directory>              # 创建裸仓库(共享仓库)
git clone --mirror <url>                 # 创建完整镜像仓库
git clone -b <branch> <url>              # 克隆时指定分支

# 配置管理
git config --global user.name "<name>"      # 设置全局用户名
git config --global user.email "<email>"    # 设置全局邮箱
git config --global core.editor "code --wait"  # 设置VS Code为默认编辑器
git config --global help.autocorrect 1       # 命令自动修正
git config --global credential.helper store  # 永久保存凭证(需谨慎)
git config --global init.defaultBranch main  # 设置默认分支名称
二、文件与修改管理
bash
# 基础操作
git add <file>                    # 添加指定文件
git add .                         # 添加所有文件(慎用)
git add -u                        # 更新已跟踪文件
git add -A                        # 添加所有修改(等价于 git add . + git add -u)
git add --patch                   # 交互式分块添加
git rm --cached <file>            # 从暂存区移除文件

# 高级操作
git restore <file>                # 恢复工作区文件(Git 2.23+)
git restore --staged <file>       # 取消暂存文件
git clean -fd                     # 删除未跟踪文件
git mv <old> <new>                # 重命名/移动文件
三、分支与合并进阶
bash
# 分支管理
git branch                        # 列出本地分支
git branch -r                     # 列出远程分支
git branch -a                     # 列出所有分支
git branch <new-branch>           # 创建新分支
git checkout -b <new-branch>      # 创建并切换分支
git checkout -B <new-branch>      # 强制创建并切换分支
git branch -d <branch>            # 删除本地分支
git push origin --delete <branch> # 删除远程分支
git branch --set-upstream-to=origin/<branch> <local-branch>  # 设置上游分支

# 合并操作
git merge <branch>                # 合并分支(可能产生合并提交)
git merge --no-ff <branch>        # 禁用快进合并
git merge --abort                 # 终止正在进行的合并
git merge -Xtheirs                # 合并时优先使用对方修改
git merge -Xours                  # 合并时优先使用当前分支修改

# 变基操作
git rebase <base-branch>          # 变基到目标分支
git rebase -i HEAD~n              # 交互式变基
git rebase --continue             # 冲突解决后继续变基
git rebase --abort                # 终止变基操作
git rebase --root                 # 从项目起点开始变基
git rebase --rebase-merges        # 保留合并提交(Git 2.22+)

# Cherry-pick 操作
git cherry-pick <commit>              # 应用指定提交到当前分支
git cherry-pick --abort               # 终止正在进行的cherry-pick
git cherry-pick --continue            # 冲突解决后继续
git cherry-pick --quit                # 完全退出cherry-pick
git cherry-pick -x <commit>           # 保留原始提交引用
四、远程仓库操作大全
bash
# 远程管理
git remote add <name> <url>       # 添加远程仓库
git remote rm <name>              # 删除远程仓库
git remote set-url <name> <new-url>  # 修改远程仓库URL
git remote -v                     # 查看所有远程仓库
git remote set-head origin <branch>  # 设置远程默认分支
git remote prune origin           # 删除远程已不存在的分支引用

# 数据同步
git fetch <remote>                # 获取远程更新
git pull <remote> <branch>        # 拉取并合并远程分支
git pull --rebase <remote> <branch>  # 拉取并通过变基合并
git push <remote> <branch>        # 推送本地分支到远程
git push --force-with-lease       # 安全强制推送(推荐)
git push origin --tags            # 推送所有标签
git push origin :<branch>         # 删除远程分支(危险操作)
git push origin --mirror          # 镜像推送所有分支和标签
五、历史操作全解析
bash
# 提交管理
git commit -m "message"           # 提交暂存区内容
git commit -am "message"          # 直接提交工作区所有修改
git commit --amend                # 修改最后一次提交
git commit --allow-empty          # 创建空提交
git commit --fixup=<commit>       # 创建修复提交
git commit --squash=<commit>      # 合并多个提交

# 历史查看
git log                           # 查看完整提交历史
git log --oneline                 # 单行显示提交历史
git log --graph                   # 图形化显示分支历史
git log -p <file>                 # 查看文件修改历史
git blame <file>                  # 查看文件每行修改记录
git reflog                        # 查看HEAD操作历史
git show <commit>                 # 查看指定提交详情

# 历史修改
git reset HEAD <file>             # 从暂存区移除文件
git reset --hard HEAD~n           # 回退n次提交(危险!)
git revert <commit>               # 创建反向提交
git filter-branch --tree-filter 'rm -f *.log' HEAD  # 文件历史过滤
git replace <commit> <new-commit>  # 替换指定提交
六、冲突解决专家模式
bash
# 冲突检测
git diff --name-only --diff-filter=U  # 列出所有冲突文件
git diff --base <file>                # 显示基础版本与工作区对比

# 冲突解决
git mergetool --tool=vscode           # 指定冲突解决工具
git checkout --conflict=diff3 <file>  # 显示三方合并格式
git rerere                            # 启用冲突解决记录

# 储藏操作
git stash                         # 储藏当前修改
git stash pop                     # 恢复最近储藏
git stash list                    # 查看储藏列表
git stash drop <stash>            # 删除指定储藏
七、子模块与嵌套仓库
bash
# 子模块管理
git submodule add <url> <path>    # 添加子模块
git submodule init                # 初始化子模块
git submodule update              # 更新子模块
git submodule foreach 'git pull origin master'  # 批量更新子模块
git submodule sync                # 同步子模块URL

# 嵌套仓库
git worktree add <path> <branch>  # 创建关联工作区
git worktree list                 # 列出所有关联工作区
git worktree remove               # 删除关联工作区
八、高级调试与维护
bash
# 提交分析
git bisect start                  # 开始二分查找
git bisect bad                    # 标记当前提交为有问题
git bisect good <commit>          # 标记已知正常提交
git bisect reset                  # 结束二分查找
git verify-commit <commit>        # 验证提交签名(GPG)

# 对象分析
git cat-file -p <commit>          # 查看任意Git对象内容
git fsck                          # 检查仓库完整性
git gc                            # 垃圾回收(优化仓库)

# 性能优化
git config --global pack.windowMemory "1g"  # 设置打包内存限制
git config --global pack.packSizeLimit "512m"  # 设置包文件大小限制
九、特殊场景解决方案
bash
# 加密存储
git config --global credential.helper 'store --file ~/.git-credentials'  # 加密存储凭证
git config --global core.sshCommand 'ssh -o IdentitiesOnly=yes -i ~/.ssh/id_rsa_encrypted'  # 使用加密密钥

# 大文件管理
git lfs track "*.psd"                # 跟踪大文件(需安装Git LFS)
git annex init                       # 初始化Git Annex(大文件管理)

# 分布式协作
git daemon --verbose --export-all --base-path=.git  # 启动Git守护进程
git remote add --mirror=push origin <url>  # 设置镜像推送
十、完整工作流程示例
bash
# 安全变基流程
git checkout feature
git fetch origin main
git rebase origin/main
# 解决冲突后:
git add .
git rebase --continue
git push -f origin feature  # 强制推送(需确保无其他人使用)

# Cherry-pick 完整流程
git checkout -b hotfix/issue-123 main
git cherry-pick -x abc123def  # 应用指定提交
# 解决冲突后:
git add .
git cherry-pick --continue
git push origin hotfix/issue-123

# 紧急修复流程
git checkout -b hotfix/issue-456 main
# 进行紧急修复...
git commit -m "Fix critical issue #456"
git checkout main
git merge --no-ff hotfix/issue-456
git tag -a v1.0.1 -m "Release v1.0.1"
git push origin main --tags
⚠️ 终极注意事项:

公共分支历史修改需全员知晓(使用前务必沟通)
强制推送前使用 git push --force-with-lease 替代 -f
复杂操作前建议创建备份分支 git branch backup-before-rebase
使用 git config --global core.editor "code --wait" 设置可视化编辑器
定期运行 git fsck --full 验证仓库完整性
重要操作前建议使用 git worktree add 创建独立工作副本
标签:git
收藏

扫描二维码,在手机上阅读
    评论
    友情链接