一、安装sourcetree
1.git插件安装
两个插件:
msysgit是Windows版的Git,从http://msysgit.github.io/下载安装即可
Git—preview.exe,未找到官网版本,从网上搜索安装包即可【推荐这个,这个能够在win下使用git命令行】
以上两个插件安装一个即可
2.安装sourcetree
安装sourcetree,下载网址:https://www.sourcetreeapp.com/download/ 先安装git插件,sourcetree直接按照提示安装即可
3.配置sourcetree
打开sourcetree,点击“工具”>“选项”,如下图
“一般”配置页面:
除截图中红圈外,其他均是默认即可
“比较”配置页面: 默认配置即可
“git”配置项: “合并时不要使用快进配置项,总是创建提交”---配置项意味着每次分支合并都会创建新的提交节点,推荐这样的使用方式 “使用git bash 作为默认终端”–如果同时安装了sysmgit和gitbash时,此配置项生效,建议使用gitbash
“验证”配置页面: 此配置项用于添加远程服务器交互时的身份验证,采用“账号/密码”方式,如果前面已经配置了公钥私钥访问的方式,此配置项可以忽略
二、配置gitlab
添加SSH key
1.点击My Profile
2.点击SHH pulibc keys下面的AddPublic Keys
3.点击key文本框下面的 here
4.出现添加SSH 的示例
三、sourcetree认证配置(秘钥和密码方式)
1在桌面上打开GIT BASH 终端
然后将其中第二段以后的换行缩进,然后点击Save
5.切换到SourceTree,选择Options
然后在SHH Client选项中选择OpenSSH,其他的不需要修改
6.使用命令行
点击右上角的“终端”,则可以用类似于linux下的纯命令行的方式,操作git仓库,
6、账号/密码登陆 每次克隆仓库时,sourcetree会要求输入账号密码,录入后会自动保存账号和密码, 保存位置:工具->选项->验证,如下图 如果要求改,点击编辑,更新密码 如果不需要,直接点击删除
7.https方式无法获取代码解决方法 有时发现https方式无法获取代码:如在sourcetree下输入https开头的url,获取代码,报错如下图所示:
解决方法:
需要在git命令行下执行:gitconfig --global http.sslverify false
四、开发使用场景
1.在gitlab中选择一个项目,复制地址,然后clone到SourceTree中
2.点击Clone
3.将复制的地址粘贴到Source Path中,然后将鼠标移动到Destination Path 文本框上点击。如果出现this is a Git repository ,表示成功,然后点击Clone. 如果是第一次使用的话,会弹出输入账号密码的框,在上面输入你的邮箱和密码就可以了。
4. 生成代码仓库
代码clone下来后,如下图所示,
1、 是仓库在本地的标签,不同名称为不同仓库
2、 本地仓库的所有分支:在clone仓库是如果不指定checkout分支,默认本地仓库的
分支时master,且只有这一个分支 3、 仓库的标签
4、 远程仓库在本地的副本,每次clone一个新仓库时,会把远程仓库的所有分支都获
取到本地仓库,如下图所示有三个仓库:master、develop、yunshang_feature_1
5将指定的开发分支获取到本地
首次clone仓库,默认本地分支时master,如下图,master前有个小的打钩“√”,意味着当前的本地分支是master
如果本次模块开发在yunshang_feature_1上,则需要将yunshang_feature_1 从本地检出 ,将鼠标放置远程的yunshang_feature_1上,右键,点“签出origin/yunshang_feature_1„„”
等待数秒,查看当前已是yunshang_feature_1分支,
6编写代码,提交版本库 开发人员将使用自己的开发工具打开仓库所在文件夹,进行代码开发,在此不做说明 修改文件后,点击左上角“提交”,如果是首次创建的文件,需要在先点击“添加”按钮
会弹出提交页面: 在提交信息一栏,填写提交信息,不填写提交信息会有提示,
要求每次提交必须填写
提交信息 核对每个文件的变更内容 如果无误,点击右下角进行提交
7打标签
代码在本地提交完毕后,打上里程碑标签
步骤:
一、选定分支
二、打标签,默认是代码最新
8、自测通过,推送至远程yunshang_feature_1分支
点击“推送”
弹出推送页面: 勾选yunshang_feature_1,则推送至远程的yunshang_feature_1 注意:要求推送时,本地和远程名称必须一致,也就是说不允许本地分支随意推送至不同名的远程分支;如果有推送的需求,先在本地建立相同名称本地分支,再推送至同名远程分支
推送成功:
9创建本地分支
情景:开发如果想更自由更方便的做一些开发或测试相关的代码,不想污染了比较正式的开发分支,则可以在本地继续创建分支。 本实例中,本地yunshang_feature_1是自己标准的本地开发分支,不想过度提交或者其他原因,则可以在本地yunshang_feature_1创建新的分支 操作: 选中yunshang_feature_1,点击“分支”按钮
弹出框如下:
1、 新的分支名称 2、 创建后直接切换到这个分支 3、 可以选择在这个分支的指定版本创建新的分支,如果不指定某个提交,则默认从 最新的提交创建分支 4、 点击按钮创建
分支创建成功,通过途中红框可以看出,多个分支的最新提交版本一致
现在开发可以在yunshang_feature_1_test_1上随意提交任何东西,既不会影响别人,也不会影响自己,即使代码污染了,也可以右键直接删掉此分支
10分支合并
假设开发在本地yunshang_feature_1上开发了新功能,但是本次需要提交到master上 步骤如下: 1、 Yunshang_feature_1合并到本地master 2、 更新远程master仓库,并合并到本地master 3、 本地master分支推送到远程master分支 操作如下 1、 Yunshang_feature_1合并到本地master:首先切换到本地master
本地yunshang_feature_1合并到本地master
2更新远程master仓库,并合并到本地master 选中master,点击右键,点击红框按钮,
选择“好”
提示合并成功
3、本地master分支推送到远程master分支 点击“推送到origin/master(已追踪)”
提示推送成功
11冲突解决
分支合并时会产生冲突,解决冲突办法和svn一致: 分支A和分支B都是从master同一次提交创建而来; 冲突解决方法: 分支A合并到分支B,产生冲突,找出冲突文件,将A中冲突内容改成和B一致后,将修改内容再次提交到B
此时分支A的info文件内容是:
支B的info文件内容
合并操作:
1、 切换版本库至分支B
2、 合并分支A到B
会弹出冲突提示:
冲突的内容提示:
1、 本次合并产生一条新的提交记录
2、 显示出本次合并产生的冲突文件,合并量大时可能不止一个
3、 显示当前冲突文件的冲突内容,途中显示的冲突内容与上文分支内容一致
打开冲突文件查看,和sourcetree界面显示一致:
3、 冲突解决方法 目前看,当前的检出版本是分支B(注意,由于冲突的存在,检出的分支已经不可切换了,不信可以尝试下)
将B中与A冲突的文件内容,改成和A一致;去掉显示的”<<<<<<<<<<<<”、“=========”和”>>>>>>>>>”等提示符,再在分支B中重新提交。 B分支修改后info文件:
点击“提交”
合并成功