GIT使用攻略
一、Git 基础概念
1. 什么是 Git
Git 是一个分布式版本控制系统,用于跟踪文件的变化,协调多人协作开发。它由 Linus Torvalds 于 2005 年创建,现已成为最流行的版本控制工具。
2. Git 的核心概念
(1)仓库(Repository)
仓库是 Git 用来保存项目的地方,包含所有的文件和历史记录。仓库分为本地仓库和远程仓库两种类型。
(2)工作区、暂存区和版本库
Git 的工作流程涉及三个主要区域:工作区是你实际编辑文件的地方;暂存区是准备提交的文件的临时存储区;版本库则保存着所有的提交历史。
二、Git 安装与配置
1. 安装 Git
(1)Windows 系统
在 Windows 系统上,可以通过以下步骤安装 Git:
- 访问 Git 官网下载安装包
- 运行安装程序,按照提示完成安装
- 打开命令行工具,输入
git --version
验证安装
(2)macOS 系统
macOS 用户可以通过 Homebrew 安装:在终端中运行 brew install git
命令即可完成安装。
(3)Linux 系统
不同的 Linux 发行版有不同的安装方式:Ubuntu 和 Debian 系统使用 sudo apt-get install git
;CentOS 和 Fedora 系统使用 sudo yum install git
。
2. 配置用户信息
安装完成后,需要配置用户名和邮箱:
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"
三、Git 基本操作
1. 创建和克隆仓库
(1)初始化新仓库
在项目目录下执行 git init
命令,即可将当前目录初始化为 Git 仓库。
(2)克隆远程仓库
使用 git clone [仓库地址]
命令可以将远程仓库完整地复制到本地。
2. 文件操作流程
(1)查看状态
git status
命令用于查看当前工作区和暂存区的状态,了解哪些文件被修改、新增或删除。
(2)添加文件到暂存区
使用以下命令将文件添加到暂存区:
git add [文件名]
:添加指定文件git add .
:添加所有修改的文件git add -A
:添加所有变化的文件
(3)提交更改
git commit -m "提交说明"
命令将暂存区的内容提交到版本库。提交说明应该简洁明了地描述本次修改的内容。
3. 查看历史记录
(1)查看提交历史
常用的查看历史命令包括:
git log
:显示详细的提交历史git log --oneline
:以简洁的单行格式显示git log --graph
:以图形化方式显示分支结构
(2)查看文件差异
git diff
:查看工作区与暂存区的差异git diff --staged
:查看暂存区与最新提交的差异git diff [commit1] [commit2]
:比较两个提交之间的差异
四、分支管理
1. 分支基本操作
(1)创建和切换分支
分支操作的基本命令:
git branch [分支名]
:创建新分支git checkout [分支名]
:切换到指定分支git checkout -b [分支名]
:创建并切换到新分支
(2)查看和删除分支
git branch
:查看本地分支列表git branch -r
:查看远程分支列表git branch -a
:查看所有分支git branch -d [分支名]
:删除已合并的分支git branch -D [分支名]
:强制删除分支
2. 分支合并
(1)合并分支
使用 git merge [分支名]
命令将指定分支合并到当前分支。合并过程中可能会遇到冲突,需要手动解决。
(2)解决冲突
当合并出现冲突时,需要按照以下步骤处理:
- 打开冲突文件,找到冲突标记
- 手动编辑文件,保留需要的内容
- 删除冲突标记
- 使用
git add
标记冲突已解决 - 执行
git commit
完成合并
五、远程仓库操作
1. 远程仓库管理
(1)添加远程仓库
git remote add origin [仓库地址]
命令用于添加远程仓库,其中 origin 是远程仓库的别名。
(2)查看远程仓库
git remote
:查看远程仓库列表git remote -v
:查看远程仓库详细信息
2. 推送和拉取
(1)推送到远程仓库
推送命令的使用方式:
git push origin [分支名]
:推送指定分支git push -u origin [分支名]
:推送并设置上游分支git push --all
:推送所有分支
(2)从远程仓库拉取
git fetch
:获取远程仓库的更新但不合并git pull
:获取并自动合并远程更新git pull --rebase
:使用变基方式合并
六、高级技巧
1. 版本回退
(1)撤销修改
不同场景下的撤销操作:
git checkout -- [文件名]
:撤销工作区的修改git reset HEAD [文件名]
:撤销暂存区的修改git reset --hard [commit]
:回退到指定版本
(2)修改提交
git commit --amend
:修改最近一次提交git rebase -i [commit]
:交互式修改历史提交
2. 标签管理
(1)创建标签
标签用于标记重要的版本节点:
git tag [标签名]
:创建轻量标签git tag -a [标签名] -m "说明"
:创建附注标签git tag [标签名] [commit]
:给指定提交打标签
(2)推送标签
git push origin [标签名]
:推送指定标签git push origin --tags
:推送所有标签
3. Git 工作流
(1)Git Flow 工作流
Git Flow 定义了以下分支类型:
- master:主分支,存放稳定版本
- develop:开发分支,日常开发使用
- feature:功能分支,开发新功能
- release:发布分支,准备新版本发布
- hotfix:热修复分支,紧急修复线上问题
(2)GitHub Flow 工作流
GitHub Flow 是一种更简单的工作流:
- 从 master 创建功能分支
- 在功能分支上进行开发
- 提交 Pull Request
- 代码审查和讨论
- 合并到 master 并部署
七、最佳实践
1. 提交规范
(1)提交信息格式
良好的提交信息应该包含:类型(feat、fix、docs、style、refactor、test、chore)、范围(可选)、简短描述、详细说明(可选)和关联问题(可选)。
(2)提交频率
建议遵循以下原则:每个提交应该是一个独立的、完整的功能点;避免提交过大或过小;保持提交历史的清晰和可读性。
2. 分支策略
(1)分支命名规范
统一的命名规范有助于团队协作:
- feature/功能名称:新功能开发
- bugfix/问题描述:错误修复
- hotfix/紧急修复:线上紧急问题
- release/版本号:发布准备
(2)分支保护
对重要分支设置保护规则:禁止直接推送、要求代码审查、通过测试后才能合并、限制谁可以合并等。
3. 协作建议
(1)代码审查
代码审查的重要性:
- 提高代码质量
- 知识共享
- 发现潜在问题
- 统一编码风格
(2)冲突预防
减少冲突的方法:经常拉取最新代码、及时合并主分支的更新、避免多人同时修改同一文件、保持良好的沟通。
八、常见问题解决
1. 配置问题
(1)SSH 密钥配置
设置 SSH 密钥的步骤:
- 生成密钥:
ssh-keygen -t rsa -b 4096
- 复制公钥:
cat ~/.ssh/id_rsa.pub
- 添加到 GitHub/GitLab 账户
- 测试连接:
ssh -T git@github.com
(2)代理设置
在需要代理的环境下,可以配置 Git 代理:HTTP 代理使用 git config --global http.proxy http://代理地址:端口
;HTTPS 代理使用 git config --global https.proxy https://代理地址:端口
。
2. 性能优化
(1)大文件处理
使用 Git LFS(Large File Storage)处理大文件:
- 安装 Git LFS
- 跟踪大文件类型:
git lfs track "*.psd"
- 正常添加和提交文件
(2)仓库清理
定期清理仓库:
git gc
:垃圾回收,优化仓库git prune
:删除不可达的对象git clean -fd
:删除未跟踪的文件和目录