Git命令大全及详解
Git是一个分布式版本控制系统,广泛应用于软件开发中。以下是Git常用命令的详细解释:
基本配置
# 设置全局用户名
git config --global user.name "Your Name"
# 设置全局邮箱
git config --global user.email "your.email@example.com"
# 查看当前配置
git config --list
# 设置默认编辑器为vim
git config --global core.editor vim
创建和克隆仓库
# 初始化新仓库
git init [项目名]
# 克隆远程仓库
git clone <远程仓库地址>
# 克隆指定分支
git clone -b <分支名> <远程仓库地址>
基本工作流程
# 检查当前文件状态
git status
# 添加文件到暂存区
git add <文件名> # 添加特定文件
git add . # 添加所有修改和新增文件
git add -A # 添加所有修改、新增和删除的文件
# 提交更改到本地仓库
git commit -m "提交信息"
# 添加并提交(适用于已跟踪文件)
git commit -am "提交信息"
# 修改最后一次提交
git commit --amend
分支管理
# 查看分支
git branch # 查看本地分支
git branch -a # 查看所有分支(包括远程)
git branch -v # 查看分支及其最后一次提交
# 创建分支
git branch <分支名>
# 切换分支
git checkout <分支名>
# 创建并切换到新分支
git checkout -b <分支名>
# 合并分支
git merge <分支名> # 将指定分支合并到当前分支
# 删除分支
git branch -d <分支名> # 删除已合并的分支
git branch -D <分支名> # 强制删除分支
# 重命名分支
git branch -m <旧分支名> <新分支名>
远程操作
# 查看远程仓库
git remote -v
# 添加远程仓库
git remote add <远程名称> <远程仓库地址>
# 从远程获取更新
git fetch <远程名称>
# 拉取远程分支并合并
git pull <远程名称> <分支名>
# 推送到远程分支
git push <远程名称> <分支名>
# 删除远程分支
git push <远程名称> --delete <分支名>
# 设置上游分支
git push --set-upstream <远程名称> <分支名>
撤销操作
# 撤销工作区修改(未add)
git checkout -- <文件名>
# 撤销暂存区修改(已add)
git reset HEAD <文件名>
# 回退到指定提交
git reset --hard <commit-id> # 彻底回退
git reset --soft <commit-id> # 保留修改到暂存区
git reset --mixed <commit-id> # 保留修改到工作区(默认)
# 回退到上一个提交
git reset --hard HEAD^
# 撤销某次提交(创建新提交来撤销)
git revert <commit-id>
查看历史
# 查看提交历史
git log
git log --oneline # 简洁显示
git log --graph # 图形化显示
git log -p # 显示差异
git log --stat # 显示修改统计
git log --since="2 weeks ago" # 按时间筛选
git log -n 5 # 显示最近5次提交
git log --author="name" # 按作者筛选
git log --grep="关键词" # 按提交信息筛选
# 查看文件修改历史
git blame <文件名>
# 查看某次提交的修改内容
git show <commit-id>
标签管理
# 查看标签
git tag
# 创建轻量标签
git tag <标签名>
# 创建附注标签
git tag -a <标签名> -m "标签信息"
# 查看标签详情
git show <标签名>
# 推送标签到远程
git push <远程名称> <标签名>
git push <远程名称> --tags # 推送所有标签
# 删除标签
git tag -d <标签名>
git push <远程名称> :refs/tags/<标签名> # 删除远程标签
储藏和清理
# 储藏当前修改
git stash
git stash save "储藏信息"
# 查看储藏列表
git stash list
# 应用最近的储藏
git stash apply
git stash apply stash@{n} # 应用指定储藏
# 删除储藏
git stash drop stash@{n}
git stash pop # 应用并删除最近储藏
# 清理未跟踪文件
git clean -n # 预览将被删除的文件
git clean -f # 强制删除未跟踪文件
git clean -fd # 强制删除未跟踪文件和目录
子模块
# 添加子模块
git submodule add <仓库地址> <路径>
# 初始化子模块
git submodule init
# 更新子模块
git submodule update
# 克隆包含子模块的项目
git clone --recurse-submodules <仓库地址>
高级操作
# 交互式暂存
git add -i
# 交互式变基
git rebase -i <commit-id>
# 二分查找引入bug的提交
git bisect start
git bisect bad # 当前版本有问题
git bisect good <commit-id> # 指定已知好的提交
# 测试后标记good或bad,git会逐步缩小范围
git bisect reset # 结束二分查找
# 重写提交历史
git filter-branch # 谨慎使用,会改变历史
# 打包未推送的提交
git bundle create <文件名> <远程名称>/<分支名>..HEAD
其他实用命令
# 查看命令帮助
git help <命令>
# 显示当前目录的Git根目录
git rev-parse --show-toplevel
# 忽略文件权限变化
git config core.fileMode false
# 设置Git命令别名
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.st status
以上命令涵盖了Git日常使用的大部分场景。根据具体需求选择合适的命令组合,可以高效地完成版本控制工作。

浙公网安备 33010602011771号