01/ 安装
- 官网
- 安装 - 创建 Bitbucker 账户 - ssh密钥可暂时选否(后续通过git生成再添加进去)
02/ 关联远程仓库
- SSH + 密钥
- SourceTree添加SSH密钥:工具 - 选项 - 一般 - SSH客户端配置
- SSH密钥:选择生成的密钥(C:\Users\xxxxx.ssh\id_rsa.pub)
- SSH客户端:OpenSSH
- SourceTree添加SSH密钥:工具 - 选项 - 一般 - SSH客户端配置
- HTTPS + 账号密码
03/ SourceTree设置默认工作目录
- 工具 - 选项 - 一般 - Repo Settings - 选择项目存储默认目录
04/ Clone仓库
- New tab - Clone
- 原路径/URL:拉取项目的git路径
- 目标路径:项目本地保存位置
- 名字:项目名称(根据路径自动获取)
05/ 拉取,提交与推送
-
团队协作:一定要先拉取团队最新更新的代码再推送自己更新的代码 ⭐⭐⭐
-
拉取:从远程仓库获取信息并同步至本地仓库,并且自动执行合并(merge)操作,即 pull=fetch+merge
- 仓库代码有了新的更改
- 本地拉取以更新信息
- 仓库代码有了新的更改
-
将本地的修改提交、推送至仓库
- 将修改的代码暂存到暂存区
- 将暂存的文件提交到本地仓库
- 提交前添加备注 - 提交
- 提交前添加备注 - 提交
- 将本地仓库的修改代码推送至仓库
- 将修改的代码暂存到暂存区
06/ 分支切换,新建,合并
- 分支切换
- 切换本地分支:直接双击分支
- 切换远程分支:双击 - 检出该分支(或右键分支-检出)
- 本地出现远端的新分支
- 新建分支
- 需要在哪个主分支上新建分支就需要切换到对应的主分支,然后在主分支上创建分支。 eg.在 master 上创建 feature-0621分支
- 向分支提交推送
- 需要在哪个主分支上新建分支就需要切换到对应的主分支,然后在主分支上创建分支。 eg.在 master 上创建 feature-0621分支
- 合并分支
- 在合并代码之前我们都需要将需要合并的分支拉取到最新状态
- 切换到主分支(最终合并到的分支)- 右键要合并的分支 - 合并feature-0621至当前分支。 eg.将feature-0621合并至master
- 在master上右键feature-0621合并
- 推送
- 在master上右键feature-0621合并
07/ 代码冲突解决
- 产生冲突的原因
- 不同分支的合并:本地修改B分支的文件1后,将B分支推送到A分支,如果A分支的文件1也被修改,即产生冲突
- 同一分支的拉取或推送:本地修改文件1,此时远端的文件1也被修改了,本地和远端文件不一致,产生冲突
- 制造一个冲突
- 远程仓库的 test1 添加了内容
- 本地仓库 GiteeTest 也对 test1 做了修改
- GiteeTest 没有拉取仓库更改的代码,直接提交推送,报错
- GiteeTest 拉取最新代码后遇见冲突
- 冲突的内容
- 冲突的内容
- 远程仓库的 test1 添加了内容
- 解决冲突
- 手动打开冲突文件解决冲突
- 根据项目需求删除不需要的代码
- 若都需要就删除
<<<<<<< HEAD
和>>>>>>> 0e5d01f67fd87cc5e5add9573e4fefcd790804e3
等符号
- 使用外部文本文件对比工具 Beyond Compare 解决冲突
- 最后将冲突文件标记已解决,提交推送到远程仓库
- 手动打开冲突文件解决冲突
08/ 贮藏
- 对于修改到一半,不能提交推送又急需完成其他分支可以将修改贮藏在本地
- 暂存修改文件后贮藏
- 取出贮藏的文件
- 贮藏记录 - 右键 - 应用贮藏区:修改文件回到未暂存区
- 贮藏记录 - 右键 - 应用贮藏区:修改文件回到未暂存区
09/ 撤销回滚
- 对于后悔提交的代码可以撤销回滚,但只能撤销回滚最近的一次提交。
- 右键 - 回滚提交 - 多了一个 Revert 反向提交
- 右键 - 回滚提交 - 多了一个 Revert 反向提交
- 重新提交 撤销回滚后的代码
- Revert 反向提交记录 右键 - 回滚提交
- Revert 反向提交记录 右键 - 回滚提交