Git 版本控制指南
Git 简介
Git 是一个分布式版本控制系统,用于跟踪文件的变化,协调多人之间的工作。它最初由 Linus Torvalds 创建,现在是世界上最流行的版本控制系统。
安装 Git
Windows
- 下载 Git for Windows
- 运行安装程序,使用默认设置
- 打开 Git Bash 验证安装:
bash
git --versionmacOS
使用 Homebrew 安装:
bash
brew install git或下载 Git for Mac
Linux (Ubuntu/Debian)
bash
sudo apt update
sudo apt install git基本配置
bash
# 设置用户名
git config --global user.name "你的名字"
# 设置邮箱
git config --global user.email "你的邮箱@example.com"
# 查看配置
git config --list
# 设置默认分支名
git config --global init.defaultBranch main基本操作
创建仓库
bash
# 初始化新仓库
git init
# 克隆远程仓库
git clone [仓库URL]基本工作流程
bash
# 查看状态
git status
# 添加文件到暂存区
git add [文件名]
git add . # 添加所有文件
# 提交更改
git commit -m "提交信息"
# 推送到远程仓库
git push origin main
# 拉取远程更改
git pull origin main分支操作
bash
# 查看所有分支
git branch -a
# 创建新分支
git branch [分支名]
# 切换分支
git checkout [分支名]
git switch [分支名] # Git 2.23+
# 创建并切换到新分支
git checkout -b [分支名]
git switch -c [分支名] # Git 2.23+
# 合并分支
git merge [分支名]
# 删除分支
git branch -d [分支名] # 已合并分支
git branch -D [分支名] # 强制删除查看历史
bash
# 查看提交历史
git log
# 查看简洁历史
git log --oneline
# 查看图形化历史
git log --graph --oneline --all
# 查看文件修改历史
git log -p [文件名]高级功能
暂存当前工作
bash
# 暂存当前工作
git stash
# 查看暂存列表
git stash list
# 应用暂存
git stash apply
# 应用并删除暂存
git stash pop撤销操作
bash
# 撤销工作区的修改
git checkout -- [文件名]
# 撤销暂存区的修改
git reset HEAD [文件名]
# 修改最后一次提交
git commit --amend
# 回退到指定提交
git reset --hard [提交ID]标签管理
bash
# 创建标签
git tag [标签名]
# 创建带注释的标签
git tag -a [标签名] -m "标签说明"
# 推送标签到远程
git push origin [标签名]
# 删除标签
git tag -d [标签名]远程操作
远程仓库管理
bash
# 查看远程仓库
git remote -v
# 添加远程仓库
git remote add [名称] [URL]
# 删除远程仓库
git remote remove [名称]
# 重命名远程仓库
git remote rename [旧名] [新名]推送与拉取
bash
# 推送指定分支
git push origin [分支名]
# 推送所有分支
git push --all origin
# 拉取但不合并
git fetch origin
# 拉取并合并
git pull origin [分支名]工作流程
Git Flow 工作流
Git Flow 是一种流行的分支管理策略:
- main:生产环境分支
- develop:开发分支
- feature:功能开发分支
- release:发布准备分支
- hotfix:紧急修复分支
GitHub Flow 工作流
更简单的工作流:
- main:主分支,始终保持可部署状态
- feature:功能开发分支,完成后合并到 main
- 使用 Pull Request 进行代码审查
常见问题与解决
合并冲突
bash
# 查看冲突文件
git status
# 手动解决冲突后
git add [冲突文件]
git commit回退错误的提交
bash
# 撤销最后一次提交(保留更改)
git reset --soft HEAD~1
# 撤销最后一次提交(不保留更改)
git reset --hard HEAD~1
# 创建反向提交
git revert [提交ID]忽略文件
创建 .gitignore 文件:
gitignore
# 常见忽略规则
node_modules/
dist/
*.log
.env
.DS_Store
*.tmpGUI 工具推荐
- GitHub Desktop:GitHub 官方客户端
- SourceTree:Atlassian 出品的免费 Git GUI
- GitKraken:功能强大的 Git 客户端
- VS Code:内置 Git 支持
