Sourcetree的使用

目录

基础配置

基础操作

拉取远程项目

pull(拉取)、commit(提交) 、push(推送)

新建分支

合并分支

Git工作流

冲突解决

配置忽略文件

SourceTree&Git部分名词解释

其他待补充


博客链接: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

https://images2018.cnblogs.com/blog/755150/201805/755150-20180510235929965-1000610226.png
image.gif

在自己的git服务器上绑定自己git公钥;
(绑定操作:Settings --> SSH Keys --> Add key(打开本地公钥文件粘贴里面所有内容)),如图:

https://images2018.cnblogs.com/blog/755150/201805/755150-20180511000017303-890428023.png
image.gif

Sourcetree配置,点击"工具-->选项-->一般",注意以下4个部分的设置,如图:

https://images2018.cnblogs.com/blog/755150/201805/755150-20180511000034153-218715854.png
image.gif

也可以不绑定然后克隆项目的时候输入账号密码验证。

基础操作

拉取远程项目

  1. 点击+号新增一个tab
  2. 点击clone克隆远程项目
  3. 输入远程仓库地址
  4. 选择保存在本地的位置和项目名称

如果箭头指向的仓库类型表明“这不是一个标准的Git仓库”,可能是有以下原因:项目地址获取错误或者没有项目访问权限

  1. 选择要从仓库拉取的分支
  2. 克隆,完成后就把代码拉到本地啦,可以开始进行本地开发
image
image.gif

项目克隆完成之后是这个界面

image
image.gif

如果有需求提交或者拉取或者推送的内容都有提示,类似下图这样,还很非常方便直观的。

image
image.gif

pull(拉取)、commit(提交) 、push(推送)

这些是日常工作最常用的功能,之前一直用git命令,在sourcetree上直接点按钮就行

pull拉取远程代码到本地(将同事提交的代码先拉到本地,再开发,防止冲突),直接点击操作区的拉取按钮即可将代码拉取,如果有需要拉取的内容会显示数字。

image
image.gif

Commit提交自己写的代码到分支

image
image.gif

Push将提交的代码推送到远程仓库

image
image.gif
image
image.gif

注意:如果有待拉取内容,一定要先拉取再提交/****推送,避免代码冲突

新建分支

项目克隆完成之后,我们拉取的是master分支上的代码,由于master分支是主分支,项目多人开发的情况下,很容易造成冲突。
所以我们一般会在gitlab远程新建一个自己的分支

image
image.gif

这样分支就创建了,创建完成后左侧会出现,双击可以切换当前分支,在master分支改了代码,切换到test20211014分支的时候不会出现master上改的代码,互不影响,只有在开发完了,提交推送合并分支的时候生效,所以本地开发要注意当前分支。

image
image.gif

合并分支

将两个分支的代码合并,比如主分支事master,然后在test分支进行开发,开发完成后需要保持master事最新版本,所以需要将test分支合并到master。具体操作如下图:

image
image.gif

合并完成后会有条记录,可以看到合并内容,这样两个分支的代码就合并到了master。

目录

基础配置

基础操作

拉取远程项目

pull(拉取)、commit(提交) 、push(推送)

新建分支

合并分支

Git工作流

冲突解决

配置忽略文件

SourceTree&Git部分名词解释

其他待补充

Git工作流

分支共有5种类型

1) master,最终发布版本,整个项目中有且只有一个

2) develop,项目的开发分支,原则上项目中有且只有一个

3) feature,功能分支,用于开发一个新的功能

4) release,预发布版本,介于develop和master之间的一个版本,主要用于测试

  1. 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.gif

SourceTree&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命令行

其他待补充

……

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,458评论 4 363
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,454评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,171评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,062评论 0 207
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,440评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,661评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,906评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,609评论 0 200
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,379评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,600评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,085评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,409评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,072评论 3 237
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,088评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,860评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,704评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,608评论 2 270

推荐阅读更多精彩内容

  • 1. Window系统 (1) 账号密码输入错误后导致再也不能进行git操作 问题描述:在本地的git,长时间不用...
    瑟闻风倾阅读 3,652评论 0 3
  • GIT (分布式版本控制系统) Git是一款免费、开源的分布式 版本控制系统,用于敏捷、高效地处理任何或小或大的项...
    goyohol阅读 3,020评论 0 17
  • 先去熟悉一波git和sourcetree的基础知识。 然后就开始我的git和sourcetree之旅: 几个概念先...
    allenslife101阅读 6,067评论 0 3
  • 1. Git相关 1.1 Git部分名词解释 克隆(clone):从远程仓库URL加载创建一个与远程仓库一样的本地...
    瑟闻风倾阅读 5,345评论 0 3
  • 16宿命:用概率思维提高你的胜算 以前的我是风险厌恶者,不喜欢去冒险,但是人生放弃了冒险,也就放弃了无数的可能。 ...
    yichen大刀阅读 5,980评论 0 4