目录
博客链接:https://www.zjhuiwan.cn/info/20211014/4220282518939357.html
Sourcetree用了一段时间,记录一些过程.
- SourceTree拥有可视化界面的项目版本控制软件,适用于git项目管理
- 使用远程仓库的好处就是可以不同而地方不同的电脑直接拉取项目开发,开发完提交就行了
- 还可以进行多人协作开发
需要注意的就是,每次写完代码结束的时候都要把代码提交掉,这样电脑就算炸了,代码还在远程仓库~
基础配置
首先下载安装好Sourcetree,官网下载即可: Sourcetree | Free Git GUI for Mac and Windows
安装完成之后先配置一下git,下载git并安装,官网下载地址:Git。
如需从gitlab上拉取代码,需要配置密钥,运行git,生成秘钥,
命令为:ssh-keygen -t rsa,如图:
秘钥生成的目录在你系统盘用户目录下的.ssh\id_rsa.pub
在自己的git服务器上绑定自己git公钥;
(绑定操作:Settings --> SSH Keys --> Add key(打开本地公钥文件粘贴里面所有内容)),如图:
Sourcetree配置,点击"工具-->选项-->一般",注意以下4个部分的设置,如图:
https://images2018.cnblogs.com/blog/755150/201805/755150-20180511000034153-218715854.png image.gif也可以不绑定然后克隆项目的时候输入账号密码验证。
基础操作
拉取远程项目
- 点击+号新增一个tab
- 点击clone克隆远程项目
- 输入远程仓库地址
- 选择保存在本地的位置和项目名称
如果箭头指向的仓库类型表明“这不是一个标准的Git仓库”,可能是有以下原因:项目地址获取错误或者没有项目访问权限
- 选择要从仓库拉取的分支
- 克隆,完成后就把代码拉到本地啦,可以开始进行本地开发
项目克隆完成之后是这个界面
image image.gif如果有需求提交或者拉取或者推送的内容都有提示,类似下图这样,还很非常方便直观的。
image image.gifpull(拉取)、commit(提交) 、push(推送)
这些是日常工作最常用的功能,之前一直用git命令,在sourcetree上直接点按钮就行
pull拉取远程代码到本地(将同事提交的代码先拉到本地,再开发,防止冲突),直接点击操作区的拉取按钮即可将代码拉取,如果有需要拉取的内容会显示数字。
image image.gifCommit提交自己写的代码到分支
image image.gifPush将提交的代码推送到远程仓库
image image.gif image image.gif注意:如果有待拉取内容,一定要先拉取再提交/****推送,避免代码冲突
新建分支
项目克隆完成之后,我们拉取的是master分支上的代码,由于master分支是主分支,项目多人开发的情况下,很容易造成冲突。
所以我们一般会在gitlab远程新建一个自己的分支
这样分支就创建了,创建完成后左侧会出现,双击可以切换当前分支,在master分支改了代码,切换到test20211014分支的时候不会出现master上改的代码,互不影响,只有在开发完了,提交推送合并分支的时候生效,所以本地开发要注意当前分支。
image image.gif合并分支
将两个分支的代码合并,比如主分支事master,然后在test分支进行开发,开发完成后需要保持master事最新版本,所以需要将test分支合并到master。具体操作如下图:
image image.gif合并完成后会有条记录,可以看到合并内容,这样两个分支的代码就合并到了master。
目录
Git工作流
分支共有5种类型
1) master,最终发布版本,整个项目中有且只有一个
2) develop,项目的开发分支,原则上项目中有且只有一个
3) feature,功能分支,用于开发一个新的功能
4) release,预发布版本,介于develop和master之间的一个版本,主要用于测试
- hotfix,修复补丁,用于修复master上的bug,直接作用于master
当开发中需要增加一个新的功能时,可新建feature分支,用于增加新功能,并且不影响开发中的develop源码,当新功能增加完成后,完成feature分支,将新功能合并到develop中,更新develop上的代码
1) 新建feature。首先当前开发分支指向develop,点击“Git工作流”
image
image.gif
在预览中可看到,feature分支是从develop分出的,输入功能名称,点击确定,项目结构中增加feature分支,并且当前开发分支指向新建的feature分支
image image.gif在dev_20211014上进行功能开发,功能开发完成后,需要同步到develop分支。
将当前分支指向dev_20211014分支,点击“Git工作流”,选择“完成功能”
image image.gif image image.gif注意:当确定开发完成并且无误后再完成工程并删除分支,否则可以保留开发分支
需要再增加新的功能时,重复以上操作即可
当多人协作开发时,可能会出现,不同人员对同一文件进行操作,从而引起合并冲突,比如你再dev_20211014上开发了一个功能涉及到A.java,你的同事也有个需求要开发,在feature 分支上新建了dev_20211014_2,也涉及到了A.java。开发完成你们合并的时候就有冲突产生,参照下面的冲突解决即可。
当开发到一定阶段,可以发布测试版本时,可以从develop分支,建立release分支,进入预发布测试阶段。点击“Git工作流”,选择“建立新的发布版本”
image image.gif发版后线上有bug需要解决可以建立新的修复补丁:
image image.gif具体操作参考上面的新建功能分支。
冲突解决
多人开发时,由于修改了同一个文件,可能会有文件冲突的情况。
拉取代码时,会有冲突提示,解决完相关的冲突文件,重新提交即可。
可以在提交的时候先拉取代码,然后进行提交推送,可以解决冲突,如果拉取不下来可以先暂存再拉取,拉取完之后取消暂存,再删掉冲突代码,然后推送。
如果代码有冲突,在代码上下文会出现如下内容:
<<<<<<< HEAD
Xxxxxxxx(当前代码)
=======
Xxxxxxxx(需要合并的代码)
自己根绝实际情况解决掉冲突代码即可。
配置忽略文件
Sourcetree会把本地所有修改过的代码都提示待提交,哪怕只是加了一个空格。所以对于一些编译文件,可以选择不提交,因为没用。比如target下面的文件,只要进行如下配置即可忽略。
image image.gif利用.gitignore过滤文件,如编译过程中的中间文件,等等,这些文件不需要被追踪管理。 正常情况下,管理员创建项目后需要直接将忽略文件创建好。
image image.gifSourceTree&Git部分名词解释
- 克隆(clone):从远程仓库URL加载创建一个与远程仓库一样的本地仓库
- 提交(commit):将暂存文件上传到本地仓库(我们在Finder中对本地仓库做修改后一般都得先提交一次,再推送)
- 检出(checkout):切换不同分支
- 添加(add):添加文件到缓存区
- 移除(remove):移除文件至缓存区
- 暂存(git stash):保存工作现场
- 重置(reset):回到最近添加(add)/提交(commit)状态
- 合并(merge):将多个同名文件合并为一个文件,该文件包含多个同名文件的所有内容,相同内容抵消
- 抓取(fetch):从远程仓库获取信息并同步至本地仓库
- 拉取(pull):从远程仓库获取信息并同步至本地仓库,并且自动执行合并(merge)操作,即 pull=fetch+merge
- 推送(push):将本地仓库同步至远程仓库,一般推送(push)前先拉取(pull)一次,确保一致
- 分支(branch):创建/修改/删除分枝
- 标签(tag):给项目增添标签
- 工作流(Git Flow):团队工作时,每个人创建属于自己的分枝(branch),确定无误后提交到master分枝
- 终端(terminal):可以输入git命令行
其他待补充
……
网友评论