Sourcetree使用教程,拉取代码克隆、解决冲突、合并分支

article/2025/9/25 10:19:46

目录

基础配置

基础操作

拉取远程项目

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

新建分支

合并分支

Git工作流

冲突解决

配置忽略文件

SourceTree&Git部分名词解释

其他待补充


博客链接:Sourcetree使用教程icon-default.png?t=L9C2https://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

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

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

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

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

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

基础操作

拉取远程项目

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

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

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

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

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

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

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

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

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

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

 

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

新建分支

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

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

合并分支

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

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

目录

基础配置

基础操作

拉取远程项目

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

新建分支

合并分支

Git工作流

冲突解决

配置忽略文件

SourceTree&Git部分名词解释

其他待补充

Git工作流

分支共有5种类型

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

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

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

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

5) hotfix,修复补丁,用于修复master上的bug,直接作用于master

当开发中需要增加一个新的功能时,可新建feature分支,用于增加新功能,并且不影响开发中的develop源码,当新功能增加完成后,完成feature分支,将新功能合并到develop中,更新develop上的代码

    1) 新建feature。首先当前开发分支指向develop,点击“Git工作流”

在预览中可看到,feature分支是从develop分出的,输入功能名称,点击确定,项目结构中增加feature分支,并且当前开发分支指向新建的feature分支

在dev_20211014上进行功能开发,功能开发完成后,需要同步到develop分支。

将当前分支指向dev_20211014分支,点击“Git工作流”,选择“完成功能”

 

注意:当确定开发完成并且无误后再完成工程并删除分支,否则可以保留开发分支

要再增加新的功能时,重复以上操作即可

当多人协作开发时,可能会出现,不同人员对同一文件进行操作,从而引起合并冲突,比如你再dev_20211014上开发了一个功能涉及到A.java,你的同事也有个需求要开发,在feature 分支上新建了dev_20211014_2,也涉及到了A.java。开发完成你们合并的时候就有冲突产生,参照下面的冲突解决即可。

当开发到一定阶段,可以发布测试版本时,可以从develop分支,建立release分支,进入预发布测试阶段。点击“Git工作流”,选择“建立新的发布版本”

发版后线上有bug需要解决可以建立新的修复补丁:

具体操作参考上面的新建功能分支。

冲突解决

多人开发时,由于修改了同一个文件,可能会有文件冲突的情况。
拉取代码时,会有冲突提示,解决完相关的冲突文件,重新提交即可。

可以在提交的时候先拉取代码,然后进行提交推送,可以解决冲突,如果拉取不下来可以先暂存再拉取,拉取完之后取消暂存,再删掉冲突代码,然后推送。

如果代码有冲突,在代码上下文会出现如下内容:

<<<<<<< HEAD

Xxxxxxxx(当前代码)

=======

Xxxxxxxx(需要合并的代码)

>>>>>>>

自己根绝实际情况解决掉冲突代码即可。

配置忽略文件

Sourcetree会把本地所有修改过的代码都提示待提交,哪怕只是加了一个空格。所以对于一些编译文件,可以选择不提交,因为没用。比如target下面的文件,只要进行如下配置即可忽略。

利用.gitignore过滤文件,如编译过程中的中间文件,等等,这些文件不需要被追踪管理。 正常情况下,管理员创建项目后需要直接将忽略文件创建好。

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

其他待补充

……


http://chatgpt.dhexx.cn/article/dlqihp1B.shtml

相关文章

Git(5) SourceTree安装使用

文章目录 一、前言二、SourceTree安装三、SourceTree使用1、克隆仓库&拉取代码&推送代码2、创建分支&合并分支代码3、标签4、子模块5、子树6、贮藏7、重置提交a、软合并&#xff1a;保持所有本地改动b、混合合并&#xff1a;保持工作副本并重置索引c、强行合并&…

【全网最全面】SourceTree使用教程详解(连接远程仓库,克隆,拉取,提交,推送,新建/切换/合并分支,冲突解决,提交PR)...

前言&#xff1a; 俗话说的好工欲善其事必先利其器&#xff0c;Git分布式版本控制系统是我们日常开发中不可或缺的。目前市面上比较流行的Git可视化管理工具有SourceTree、Github Desktop、TortoiseGit&#xff0c;综合网上的一些文章分析和自己的日常开发实践心得个人比较推荐…

Git 管理工具 SourceTree 的使用(上手简单,不熟悉git命令的开发者必用)

目录 一、SourceTree 概述 二、SourceTree 使用方法 1. 克隆 Git 仓库至本地 2. 推送本地的文件至远程仓库 3. 创建/切换/合并分支 4. 版本回退 一、SourceTree 概述 SourceTree 是一款免费的 Git 和 Hg 客户端管理工具&#xff0c;支持 Git 项目的创建、克隆、提交、pus…

经典传染病SI模型及仿真

SI模型 假设&#xff1a; 1&#xff09;节点均匀混合 2&#xff09;感染后染病状态不再改变 3&#xff09;接触病原体后以一定概率感染&#xff1a; 4&#xff09;初始状态的人群感染密度为&#xff1a; 则感染过程动力学方程为&#xff1a; 如果设初始感染密度为则感染…

传染病模型及实现(附MATLAB代码)

传染病模型及实现&#xff08;附MATLAB代码&#xff09; 问题 一只游船上有800人&#xff0c;一名游客不慎患传染病&#xff0c;12小时后有3人发病&#xff0c;由于船上不能及时隔离&#xff0c;问经过72小时&#xff0c;患此病的人数。 思路 假设游客在船上均匀分布&#…

利用新型冠状病毒感染者数据建模传染病SIS模型并进行拟合、预测等(附实验数据集下载链接,侵删!!!)

SIS模型 仅作交流分享用&#xff0c;已注明参考&#xff0c;如有侵权&#xff0c;请联系博主修改、删除文章 模型解释&#xff1a; 易感者与患病者有效接触即被感染&#xff0c;无潜伏期、无免疫性&#xff1b; 无免疫性解释——病人治愈成为健康人&#xff0c;健康人可再次…

传染病学模型 | Matlab实现SEIR传染病学模型 (SEIR Epidemic Model)

文章目录 效果一览基本描述模型介绍程序设计参考资料效果一览 基本描述 传染病学模型 | Matlab实现SEIR传染病学模型 (SEIR Epidemic Model) 模型介绍 SEIR模型是一种常见的传染病传播模型,用于描述人群感染某种传染病的过程。SEIR模型将人群划分为四个互相转化的状态: 易感者…

基于SEIRD和元胞自动机(CA)模型的传染病发展趋势预测

目录 前言一、模型假设二、符号说明三、SEIRD模型1. 模型求解 四、元胞自动机&#xff08;CA)模型1. 模型求解2. 城市居民减少外出对疫情发展的影响3. 城市间人口流动对疫情发展的影响 五 基于防疫政策的修正模型2 “全民戴口罩”“早发现&#xff0c;早隔离”“全民打疫苗” 总…

【Python数学建模】SEIR传染病模型模型延伸-SEIDR模型(一),加入疫苗接种、政府管控、病毒变异等因素的影响

目录 一. SEIR传染病模型 二. SEIR模型的延伸——SEIDR模型 三. 模型延伸——影响因素1&#xff1a;疫苗接种 四. 模型延伸——影响因素2&#xff1a;政府管控 五. 模型延伸——影响因素3&#xff1a;病毒变异 写在前面&#xff1a; 需要源代码的小伙伴可以移步到我的Git…

Matlab-SEIR传染病模型预测

文章目录 1. SEIR模型2. Demo13. Demo24. 数据 1. SEIR模型 适用于存在易感者、暴露者、患病者和康复者4类人群&#xff0c;有潜伏期、治愈后获得终身免疫的疾病&#xff0c;如带状疱疹、水痘。 模型假设 假设易感者与患病者有效接触即变为暴露者&#xff0c;暴露者经过平均…

传染病学模型 | Matlab实现SEIRS传染病学模型 (SEIRS Epidemic Model)

文章目录 效果一览基本描述模型介绍程序设计参考资料效果一览 基本描述 传染病学模型 | Matlab实现SEIRS传染病学模型 (SEIRS Epidemic Model) 模型介绍 SEIRS是一种基于计算机模拟的传染病学模型,用于研究人群中传染病的传播和控制。与其他传染病学模型不同,SEIRS模型考虑了…

传染病模型3

一、研究方向 建立传染病的数学模型描述传染病的传播过程 分析感染人数的变化规律&#xff0c;预测传染病高峰的到来 探索控制、根除、预防传染病传播蔓延的手段 二、舱室 流行病学中的一大类模型&#xff0c;称为“舱室”模型&#xff0c;它是将人群分成若干个“舱室…

传染疾病模型

1 分支过程 1.1 工作原理 第一波疫情 假设一个人携带一种新的病毒&#xff0c;以独立的概率p将疾病传染给遇到的每一个人假设这个人在感染期遇到了k个人 ——>这k个人是该疾病传染的第一波基于疾病是随机传染的&#xff0c;所以第一波中有些人会感染疾病&#xff0c;有些人…

用python实现传染病模型传染病模型

用python实现传染病模型 1.SI模型1.1 代码实现1.2 模型的结果 2.SIS &#xff08;治愈后仍然还是易感者&#xff09;2.1 代码实现2.2模型的结果 3 SIR模型&#xff08;治愈后直接移除&#xff09;3.2代码实现3.2绘制图像&#xff1a; 4.SEIR 模型&#xff08;新增一个人群&…

基于SEIR传染病模型的新冠肺炎疫情预测

整理一下暑假参加的数学建模训练题&#xff1a;&#xff09; 仅供学习理解传染病模型 源代码仅供参考&#xff1a;MathematicalModeling/COVID-19 at main AOYLAOTANG/MathematicalModeling GitHub 目录 一、题目介绍 二、问题分析 2.1问题一&#xff1a; 2.2问题二&am…

传染病模型(1)——SI模型及matlab详解

前言 常见的传染病模型按照具体的传染病的特点可分为 SI、SIS、SIR、SIRS、SEIR 模型。其中“S”“E”“I”“R”的现实含义如下&#xff1a; S (Susceptible)&#xff0c;易感者&#xff0c;指缺乏免疫能力健康人&#xff0c;与感染者接触后容易受到感染&#xff1b; E (Ex…

Python:SEIR传染病模型

Hello&#xff0c;大家好&#xff01;好久没有更新了&#xff0c;今天给大家介绍一个非常经典的模型——SEIR传染病模型&#xff01; SEIR传染病模型 模型介绍S、E、I、R代表的含义模型建立变量解释建立微分方程转化迭代形式 Python实现总结获得源代码 模型介绍 传染病的基本…

经典的传染病模型简介 + SIS情况分析

传染病模型简介 SIS情况分析 简介各类经典传染病模型&#xff08;基础形式&#xff09;SIS模型假设符号说明微分方程组模型结论 经典传染病模型的缺陷 简介 研究传染病模型&#xff0c;对社会经济和维持秩序有重大意义&#xff0c;尤其在过去的2020年&#xff0c;新冠疫情爆发…

传染病模型

参考&#xff1a;https://www.zhihu.com/question/367466399?fromgroupmessage 假定人群分为4种&#xff0c;分别是&#xff1a; SUSCEPTIBLES:易感者&#xff0c;潜在的可感染人群。EXPOSED&#xff1a;潜伏者&#xff0c;已经被感染没有表现出来的人群。INFECTIVES&#xf…

微分方程传染病模型之指数模型-SI模型-SIS模型-SIR模型

传染病&#xff08;瘟疫&#xff09;经常在世界各地流行&#xff0c;如霍乱、天花、艾滋病、SARS、新型冠状病毒、H5N1病毒等&#xff0c;建立传染病的数学模型&#xff0c;分析其变化规律&#xff0c;防止其蔓延是一项艰巨的任务&#xff0c;这里就一般的传染规律讨论传染病的…