### Git 版本控制器 #### 常见的主流版本管理软件 1. ##### SVN : 大部分公司主流的版本控制软件 + 集中式的版本控制软件,只有一台服务器是版本服务器 + 开发中如果是·离线状态,SVN 不能支持离线版本管理,导致开发人员离线状态下不能正常开发 2. ##### GIT : 现在公司主流的版本控制软件 + 分布式的版本控制软件,每个人的电脑都是一个版本服务器 + 分布式版本管理软件,每个人本地都有一个独立的版本库,即使在离线状态下,也可以完成版本管理 #### git 的工作流程 1. ##### 本地 1. 工作区 : 文件的 添加、删除、修改 2. 暂存区 : 记录小结内容 3. 版本库 : 将暂存的内容提交到版本库生成新的版本 2. ##### 服务器 (版本库) 1. 代码托管 : git管理代码,通过各种命令将一个新增的文件,添加到版本管库中,方便后续的维护和开发. #### 代码托管平台 (主要用于代码托管和版本管理) 1. Github : 全球最大的开源社区网站 2. Gitlab : 企业使用 3. 码云 : 国内开源社区、代码托管平台 #### 链接远程仓库 1. ##### 本地生成 密钥对 ``` ssh-keygen -t rsa ``` 2. ##### 将本地公钥配置到远程服务器 ``` cat ~/.ssh/id_rsa.pub # 查看本地公钥 ``` 3. ##### 复制公钥信息到 github --> setting --> SSH and GPG keys 4. ##### 配置本地用户 ``` git config --global user.name # “写你自己的名字” git config --global user.email # “写自己的邮箱” ``` 5. ##### 使用 ssh 链接下载远程仓库 ``` git clone ssh仓库地址 ``` #### 版本管理常用命令 1. ##### `git status` : 查看当前版本库中所有文件的状态 2. ##### `git add 文件名/./*/-A` : 添加文件到暂存区 3. ##### `git commit -m “描述” 文件名/.` : 提交指定的数据,生成新的版本 4. ##### `git push` : 将代码推送到远程仓库,方便其它开发人员下载开发 5. ##### `git diff` : 查看新增的代码对于哪些文件作了修改 6. ##### `git log / reflog` : 查看历史提交信息 7. ##### `git reset --hard commit版本号` : **通过版本号**,完成代码的回滚 8. ##### `git restore ` : 工作区修改的代码回退 9. ##### `git restore --staged ` : 暂存区修改的代码回退到工作区 #### 分支管理 (不要在 master 分支直接修改边界内容) 1. ##### 通过 git 软件对版本进行管理,需要解决的问题 2. ##### 每个版本都会由用户下载, 提供多个版本下载 3. ##### 开发中对出现 bug 进行修复过程中保证软件被正常使用 4. ##### 添加新的功能,在增加功能时,保证软件正常下载使用 5. ##### 一般情况下不同分支的作用 + **master 分支** : 比较完整的随时可发布, 注意永远不要在 master 分支上直接进行开发和提交代码,确保 master 上的代码一直可用 + **develop 分支** : 平时开发的主分支,功能最新最全的分支 + **feature 分支** : 主要用来开发新的功能 + **release 分支** : 发布准备的专门分支 + **hotfix 分支** : 修复线上代码的 bug,修复后放到 develop 分支, 然后提交到 master 分支 6. ##### 分支的操作 1. 查看当前版本所有的分支 ``` git branch -a ``` 2. 添加一个新的分支 ``` git branch ``` 3. 切换分支 ``` git checkout ``` 4. 删除一个分支 ``` git branch -d ``` 7. #### 合并分支 (将开发分支的内容合并到主分支) ``` # 将指定分支合并到当前分支 git merge 分支名 ``` + 合并分支冲突解决 (两个用户同时更改了同一文件同一行,合并时会起冲突) 1. 删除另一个用户的更改 2. 删除自己的更改 3. 保留双方的更改,手动处理 + 修改完成后 commit 直接提交 #### 本地仓库关联远程仓库 1. ##### 创建本地仓库 1. 初始化本地仓库 ``` git init ``` 2. 给本地仓库添加远程连接 ``` git remote add origin 仓库地址 ``` 3. 查看本地仓库远程连接 ``` git remote ``` 2. ##### 同步仓库信息 + 创建好了本地仓库,在第一次关联完成后,一定要执行一次同步,将远程仓库的信息同步到本地 ``` git pull --rebase origin master ``` 3. ##### 移除指定链接 ``` git remote remove origin ```