基础操作
初始化本地仓库
git init
在当前目录创建一个新的 Git 仓库
克隆远程仓库
git clone <远程仓库地址>
将远程仓库完整克隆到本地
配置用户信息
git config --global user.name "用户名"
git config --global user.email "邮箱"
git config --global user.email "邮箱"
设置全局的 Git 用户名和邮箱
查看配置信息
git config --list
显示所有 Git 配置信息
查看命令帮助
git help <命令>
git <命令> --help
git <命令> --help
获取指定 Git 命令的详细帮助信息
工作流操作
查看文件状态
git status
git status -s # 简化输出
git status -s # 简化输出
显示工作区和暂存区的文件状态
添加文件到暂存区
git add <文件名>
git add . # 添加所有文件 git add -u # 添加已跟踪的文件
git add . # 添加所有文件 git add -u # 添加已跟踪的文件
将文件改动添加到暂存区,准备提交
提交更改
git commit -m "提交说明"
git commit -am "提交说明" # 跳过暂存区
git commit -am "提交说明" # 跳过暂存区
将暂存区的更改提交到本地仓库
查看提交历史
git log
git log --oneline # 简化显示
git log -n 5 # 显示最近5次提交
git log --oneline # 简化显示
git log -n 5 # 显示最近5次提交
查看仓库的提交历史记录
查看文件差异
git diff # 工作区与暂存区
git diff --cached # 暂存区与本地仓库
git diff --cached # 暂存区与本地仓库
比较文件在不同状态下的差异
撤销暂存区文件
git reset HEAD <文件名>
git reset HEAD . # 撤销所有
git reset HEAD . # 撤销所有
将文件从暂存区移除,保留工作区修改
丢弃工作区修改
git checkout -- <文件名>
git restore <文件名> # Git 2.23+
git restore <文件名> # Git 2.23+
放弃工作区对文件的修改,恢复到最近版本
撤销最近提交
git commit --amend
修改最近一次提交,可添加遗漏文件或修改说明
分支管理
查看分支
git branch # 本地分支
git branch -r # 远程分支
git branch -a # 所有分支
git branch -r # 远程分支
git branch -a # 所有分支
列出本地、远程或所有分支信息
创建分支
git branch <分支名>
git checkout -b <分支名> # 创建并切换
git switch -c <分支名> # Git 2.23+
git checkout -b <分支名> # 创建并切换
git switch -c <分支名> # Git 2.23+
创建新分支,可直接切换到新分支
切换分支
git checkout <分支名>
git switch <分支名> # Git 2.23+
git switch <分支名> # Git 2.23+
切换到指定的已有分支
合并分支
git merge <被合并分支名>
git merge --abort # 放弃合并
git merge --abort # 放弃合并
将指定分支合并到当前所在分支
删除分支
git branch -d <分支名> # 删除已合并分支
git branch -D <分支名> # 强制删除
git push origin --delete <分支名> # 删除远程
git branch -D <分支名> # 强制删除
git push origin --delete <分支名> # 删除远程
删除本地或远程分支,谨慎使用强制删除
重命名分支
git branch -m <旧分支名> <新分支名>
重命名本地分支
远程仓库
关联远程仓库
git remote add <别名> <远程地址>
# 示例: git remote add origin https://github.com/user/repo.git
# 示例: git remote add origin https://github.com/user/repo.git
将本地仓库与远程仓库关联,通常别名为 origin
查看远程信息
git remote
git remote -v # 显示地址
git remote show <别名> # 详细信息
git remote -v # 显示地址
git remote show <别名> # 详细信息
查看已关联的远程仓库信息
拉取远程代码
git fetch <远程别名> <分支>
git pull <远程别名> <分支>
git pull # 简化写法
git pull <远程别名> <分支>
git pull # 简化写法
拉取远程仓库代码到本地,pull 会自动合并
推送代码到远程
git push <远程别名> <本地分支>
git push -u <远程别名> <本地分支> # 关联
git push --force # 强制推送(慎用)
git push -u <远程别名> <本地分支> # 关联
git push --force # 强制推送(慎用)
将本地分支推送到远程仓库,首次推送建议关联
移除远程关联
git remote remove <远程别名>
解除与指定远程仓库的关联
高级操作
版本回退
git reset --soft <提交哈希>
git reset --mixed <提交哈希>
git reset --hard <提交哈希> # 慎用
git reset --mixed <提交哈希>
git reset --hard <提交哈希> # 慎用
回退到指定版本,soft保留修改,hard彻底丢弃
查看所有操作记录
git reflog
显示本地仓库的所有引用变更,可找回误删提交
创建撤销提交
git revert <提交哈希>
创建新提交抵消指定提交的修改,保留历史记录
标签管理
git tag <标签名> # 创建标签
git tag -a <标签名> -m "说明"
git push origin <标签名> # 推送标签
git tag -a <标签名> -m "说明"
git push origin <标签名> # 推送标签
为重要版本创建标签,如 v1.0.0
暂存工作区
git stash # 暂存修改
git stash pop # 恢复并删除
git stash list # 查看暂存
git stash pop # 恢复并删除
git stash list # 查看暂存
临时保存工作区修改,用于切换分支等场景
统计代码提交量
git shortlog -s -n # 按作者统计
git log --oneline | wc -l # 总提交数
git log --oneline | wc -l # 总提交数
统计代码提交数量和作者贡献
常用工作场景
新功能开发流程
git checkout main
git pull
git checkout -b feature/新功能名
# 进行开发工作
git add .
git commit -m "完成新功能开发"
git push -u origin feature/新功能名
git pull
git checkout -b feature/新功能名
# 进行开发工作
git add .
git commit -m "完成新功能开发"
git push -u origin feature/新功能名
修复Bug流程
git checkout main
git pull
git checkout -b bugfix/问题描述
# 修复Bug
git add .
git commit -m "修复XX问题"
git push -u origin bugfix/问题描述
git pull
git checkout -b bugfix/问题描述
# 修复Bug
git add .
git commit -m "修复XX问题"
git push -u origin bugfix/问题描述
版本发布流程
git checkout main
git pull
git tag -a v1.0.0 -m "版本说明"
git push origin v1.0.0
# 或推送所有标签
git push origin --tags
git pull
git tag -a v1.0.0 -m "版本说明"
git push origin v1.0.0
# 或推送所有标签
git push origin --tags
回滚错误提交
# 本地未推送的错误提交
git log --oneline
git reset --hard 目标提交哈希
# 已推送的错误提交
git log --oneline
git revert 错误提交哈希
git push
git log --oneline
git reset --hard 目标提交哈希
# 已推送的错误提交
git log --oneline
git revert 错误提交哈希
git push