sourcetree创建分支与分支合并

2023-11-08

一、Sourcetree简单介绍

通过Git可以进行对项目的版本管理,但是如果直接使用Git的软件会比较麻烦,因为是通过一条一条命令进行操作的。 
这里写图片描述 
Sourcetree则可以与Git结合,提供图形界面,使用会方便很多。Git和Sourcetree的安装这里就不多说,网上大把的教程。 
这里写图片描述

二、分支的创建与合并

1、创建一个远程仓库

在GitHub官网上创建一个新的远程仓库: 
这里写图片描述

2、用Sourcetree将这个远程仓库clone到本地

复制远成仓库的地址,然后利用改地址将远程仓库clone下来: 
这里写图片描述

这里写图片描述 
这样,在本地就创建好了一个本地仓库MainProject,可以到目标地址去查看一下。

3、准备测试用工程

这里创建一个android工程,不需要写什么代码。将创建好的整个android工程放到本地仓库的文件夹中,然后推送到远程仓库,这样测试用的工程基本准备好了: 
这里写图片描述

这里写图片描述

4、创建分支

此时远程仓库中已经有一个项目了,下面模拟一个场景:假设有两个程序猿Allen、Bill同时在开发这个项目,项目经理要求Allen增加一个听歌的功能,要求Bill增加一个游戏的功能,那此时这两人就必须将远程仓库中的项目clone到他两各自的本地(这里就用一台电脑模拟,clone两次创建两个本地仓库): 
这里写图片描述

clone下来后会有一个默认的分支master,可以理解成主分支,那去进行项目开的话不会直接使用master,会去创建一个新分支进行开发,避免直接使用master改来改去最后一团糟那就该崩溃了。每个人在各自的新分支中开发完成后将新分支合并到主分支中就可以了。 
接下来Allen和Bill各自创建一个新分支:Allen_dev和Bill_dev 
这里写图片描述

这里写图片描述

这里写图片描述

那如果Allen和Bill在开发过程中想看看对方的代码,那就必须将各自创建的新分支推送到远程仓库,然后将对方的分支拉取下来,每次想看的话先获取,然后再拉取最新的代码到本地仓库即可。 
这里写图片描述

首次拉取别人的分支,在上面的获取之后,按如下操作,这里是Allen获取Bill的分支Bill_dev,Bill获取Allen的步骤一样: 
这里写图片描述

注意:黑色加粗表示当前所处的分支,可以任意双击切换! 
这里写图片描述 
这里写图片描述

到此,各自的分支已经创建好了,下面Allen和Bill就可以在各自的新分支上进行项目经理安排的任务。

3、分支合并

Allen和Bill打开各自本地仓库中的项目代码进行开发,顺利完成项目经理交代的任务,然后各自的分支推送到远程仓库: 
这里写图片描述

这里写图片描述

此时双方可以获取最新代码,拉取最新分支代码,拉取完成后就可以看到对方所增加的内容: 
这里写图片描述

这里写图片描述

此时,各自都想将对方的代码整合到自己的项目中,这是就需要分支的合并。例如Allen合并Bill的分支: 
这里写图片描述

合并完成后,可以看到之前打开的Allen的Android工程,会发现Bill添加的功能已经在Allen的项目中显示出来了。 
这里写图片描述

这里写图片描述

最后不要忘了将各自合并后的分支推送。

现在Allen和Bill的工作已经完成了,各自的分支也推送到了远程仓库,此时项目经理就可以clone远程仓库的项目到本地,拉取Allen和Bill的提交的最新分支,将它们合并到主分支master中。这里就拿最开始创建的MianProject看作是项目经理,合并完成并推送。 
这里写图片描述

3、解决冲突

到目前为止Allen和Bill各自进展顺利,但是假若两人同时在同一个文件进行了操作,那最后合并时就会出现冲突。比如在MainActivity: 
这里写图片描述

这里写图片描述

此时当Allen和Bill推送自己的分支到远程仓库后,项目经理MainProject拉取代码进行合并: 
假设首先合并Allen_dev到master没有问题,但是当合并Bill_dev到master时就会提示合并出现了冲突,需要解决。 
这里写图片描述 
点击关闭,然后切换到文件状态,找到出现冲突的文件,会有相应的冲突信息: 
这里写图片描述

有冲突就要解决,右键单击冲突文件,选择解决冲突,这里有两个选项: 
1、使用 我的版本 解决冲突 
2、使用 他人版本 解决冲突 
这里项目经理MainProject首先是将Allen的分支合并到主分支master,那么“我的版本”就是对应的Allen的,“他人版本”对应的就是Bill的。如果首先合并Bill的分支,那么对应关系就要对调一下。总的来说,“我的版本”对应的是首先合并到主分支master的。 
采用一个人的版本,那么在冲突文件中就只会保留该人修改的代码,例如我这里就选择”使用 我的版本 解决冲突“,那么在MainActivity中就只会保留Allen添加的代码。 
这里写图片描述 
弹出对话框点击确定。

解决前: 
这里写图片描述

解决后: 
这里写图片描述

到这为止基本的分支创建与合并的简单应用,还有合并冲突解决就介绍完了。

原文地址:http://blog.csdn.net/qq_34975710/article/details/74469068

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

sourcetree创建分支与分支合并 的相关文章

  • Git - 如何将整个目录恢复到特定提交(删除任何添加的文件)

    我想恢复 git 中的目录 恢复其中的所有文件 并删除自该提交以来添加的所有文件 进行结账似乎只能满足我的第一个要求 但不会删除任何文件 我想出了最简单的解决方案 git rm path to dir git checkout
  • git 排除与忽略

    I use Tower http www git tower com 用于在 Mac 中使用 Git Tower 中的设置具有创建 gitignore 的 忽略 部分 但它还有另一个名为 排除 的部分 似乎可以将排除与 git ls fil
  • Composer 无法获取 github

    今天 我尝试通过运行来安装 Laravelcomposer create project laravel laravel 5 1 myproject prefer dist我收到此错误 Could not fetch https api g
  • git reflog 和 log 有什么区别?

    手册页说 log 显示提交日志 reflog 管理 reflog 信息 reflog 信息到底是什么 它有哪些日志没有的信息 日志看起来更详细 git log显示当前的 HEAD 及其祖先 也就是说 它打印提交 HEAD 指向的提交 然后打
  • Github - 上传文件

    我正在尝试将文件夹添加到 github 存储库 该文件在 github 上显示为空 并有一个绿色箭头 有谁知道如何解决这个问题 我将不胜感激你的帮助 谢谢 这看起来类似于 Git 如何跟踪未跟踪的内容 https stackoverflow
  • github actions 找不到 package.json

    我正在尝试设置一些基本的 GitHub 操作来在 PR 上撰写评论 Action 发布在 github 上 如下所示 action yml 文件 name name description description author me inp
  • 有没有一个简单的命令可以将分支转换为标签?

    我即将完成将 哑快照 转换为 git 的繁琐过程 这个过程进展得非常顺利 感谢这个重命名过程 https stackoverflow com questions 6628539 how to tell git that its the sa
  • Phonegap使用命令行工具添加插件

    我是phonegap的新手 我按照phonegap官方网站中定义的步骤使用命令行工具创建项目 nodejs 我成功创建项目并添加平台 但是 当我尝试添加插件时出现以下错误 命令 cordova plugin add https git wi
  • 从 GitHub 读取代码作为网页中的文本(原始)

    我正在尝试从我的 GitHub 存储库读取一些源代码 C 语言 以在我的网页中显示为文本 我可以通过以下方式访问原始模式下的代码https raw github com https raw github com 我正在使用 jQuery G
  • 具有单个子模块的多个存储库

    我已经找了一段时间但没有找到答案 也许我不知道该看什么 我们有一个主库 它本身就是一个存储库 我们称之为 Lib 它包含我们的大部分模块和子模块 我们还假设它的大小为 2GB 现在我们有很多项目 例如 ProjA ProjB ProjC 每
  • Git:如何修改服务器的提交?

    我已经在 EC2 上的 git 服务器上推送了一些提交 而不是在 github 上 如何修改 git 服务器上的这些提交 操作就像 删除提交 例如变基 更改提交消息 是否可以 非常感谢 你几乎可以通过用力推动来完成所有事情 将您的本地树更改
  • 从 github 中排除文件夹

    我需要从我的 Github 中排除文件夹 App Data 但我不知道如何做 我有一个应用程序 它在目录中保存许多文件 例如 jpg 文件 Source MyProject App data stored filename jpg 现在我需
  • 如何从 GitHub 上彻底删除问题?

    是否可以从 GitHub 问题跟踪器中完全删除问题 不可以 github API 只允许您打开 关闭 重新打开问题 这是问题 API 文档 http developer github com v3 issues
  • 尝试克隆一个 git 存储库,但它卡在克隆到中

    我使用的是 Windows 10版本 10 0 19042 内部版本 19042 GIT Ver 2 32当尝试使用 git bash 执行以下命令时git clone depth 1 b carla https github com Ca
  • 哪些 git hooks 适用于“git rebase --continue”?

    我正在尝试为我的组织构建一组 git hook 脚本 我想使用的一个脚本 仅用于我自己的多个项目 将是检查git rebase continue我的代码中没有留下任何冲突标记 lt lt lt lt lt or gt gt gt gt gt
  • 是否可以使用 GitHub Action 和 GitHub FTP Deploy 将 Laravel Web 应用程序部署到共享托管?

    是否可以deploy the Laravel网络应用程序到共享主机使用 GitHub Action 和 GitHub FTP 部署 如果可能的话我应该如何更改 github workflows master yml on push bran
  • Gitolite git 克隆错误

    我正在尝试在我的服务器 Macos 服务器 上设置 gitolite 我按照此处找到的安装文档中的说明进行操作 http sitaramc github com gitolite doc 1 INSTALL html http sitara
  • Git checkout 不会丢弃我的更改

    我在 Windows XP 上使用 git 1 7 1 和 cygwin 这个问题可以通过例子得到最好的说明 git status On branch master Changed but not updated use git add
  • Git 认为我每次进行小更改时都在重写我的一个文件

    我有一个中等大小的 Java 文件 每次我对一个文件 BuildTable java 进行更改时 Git 都会将其报告为巨大的更改 即使只是一两行 BuildTable java 大约有 200 行 本次提交中的更改仅更改了一行 git d
  • 为什么“git pull”在我的网络服务器上失败?

    我使用 git 来提取站点代码库的更改 文件内部的更改和文件删除是有效的 但是 当我将新文件或目录 不是空的 添加到存储库时 它不会被本地拉到网络服务器 拉动时不会显示错误消息 但在检查该文件时 它不在那里 在线的 bitbucket re

随机推荐

  • c# 位运算符

    说来惭愧 今天看别人提供的源码 看了这些运算符竟然有些记不起来 在这里就记录一下 首先认识这些运算符 按位与 其实与 逻辑运算符有一致的地方 下面会讲到 按位或 同样与 有类似的地方 按位取反 按位异或 lt lt 左移运算符 gt gt
  • Python爬取天气数据并进行分析与预测

    随着全球气候的不断变化 对于天气数据的获取 分析和预测显得越来越重要 本文将介绍如何使用Python编写一个简单而强大的天气数据爬虫 并结合相关库实现对历史和当前天气数据进行分析以及未来趋势预测 1 数据源选择 选择可靠丰富的公开API或网
  • 百度又开源一款压测工具,可模拟几十亿的并发场景,太强悍了

    dperf 是百度开源的一款基于 DPDK 的 100Gbps 网络性能和负载测试软件 能够每秒建立千万级的 HTTP 连接 亿级别的并发请求和数百 Gbps 的吞吐量 优点 性能强大 基于 DPDK 使用一台普通 x86 服务器就可以产生
  • burpsuite扩展集成sqlmap插件

    通常我们在使用sqlmap测试SQL注入问题的时候会先使用burpsuite来抓包 然后交给sqlmap进行扫描 此操作略显繁琐 为了避免这种繁琐的重复操作可以将sqlmap以插件的方式集成到burpsuite里面 实现request右击s
  • ConnectTimeout和ReadTimeout所代表的意义

    ConnectTimeout 指的是建立连接所用的时间 适用于网络状况正常的情况下 两端连接所用的时间 在java中 网络状况正常的情况下 例如使用HttpClient或者HttpURLConnetion连接时设置参数connectTime
  • GO语言学习-Sublime+Go语言环境搭建

    sublime text3 Golang 搭建开发环境 1 引言 sublime text3搭建Golang的开发环境顺序为 1 安装Golang 2 sublime 安装 Gosublime 3 修改Gosublime中的配置 使之支持G
  • 基于蓝牙技术使用stm32制造一个智能小车 (寻迹,避障,遥控)

    目录 1 制作智能小车的硬件名单 3 引脚图 2 先让小车动起来 1 小车运动 2 代码 3 寻迹 1 工作原理 2 代码 4 超声波避障 1 工作原理 2 代码 5 蓝牙遥控 1 蓝牙工作原理 2 代码 6 oled屏幕 1 工作内容 7
  • Bootstarp入门教程(3)栅格系统

    栅格系统简介 栅格系统用于通过一系列的行 row 与列 column 的组合创建页面布局 你的内容就可以放入创建好的布局中 下面就介绍以下Bootstrap栅格系统的工作原理 行 row 必须包含在 container中 以便为其赋予合适的
  • 【最新】Java基础学习笔记(20天学会java黑马)(一)

    文章目录 Java背景 初步了解 Java快速入门 HelloWorld案例 Java基础语法 注释 数据类型 变量 关键字与标志符 类型转换 强制类型转换 运算符 算术运算符 赋值运算符 自增自减运算符 关系运算符 逻辑运算符 短路逻辑运
  • 基于Linux系统下安装Tomcat

    Tomcat服务器是一个免费开放开源的轻量级Web应用服务器 可以实现项目的部署和管理 本博客将实现Tomcat在Linux操作系统中的安装 1 检查系统中是否有java JDK 1 1 Windows系统下查看 使用 Win R键打开运行
  • eclipse中编写spring配置文件时有design和source,namespace 如何设置出来的问题

    首先要安装Spring插件 在已经装了 spring插件的情况下 右键点击你要显示的 xml文件 会出来 open with gt spring config editor 如图
  • ubuntu18.04安装显卡驱动 + CUDA + cuDNN+Tensorflow+pytorch

    GeForce MX150 Python3 6 cuda 9 0 cudnn 7 tensorflow 1 12 0 按多个教程安装前后也出了很多问题 最终才安装成功 以防万一 现将过程记录如下 1 安装显卡驱动 注意 两种方法 方法一为我
  • vue 设置提示 @ 路径 和 ~@ 路径

    菜鸟最近用公司的电脑开发 结果发现之前有的路径提示全没了 感觉非常难受 然后去插件一看才发现 好像是菜鸟自己不小心把这个插件给删了 有点难受 但是安装了这插件还是有点不好用 就是感觉每次使用了 vue 的 或者 开头的路径时 总是没有提示
  • React:‘XXX’ is defined but nerver used的解决方法

    原因 想引入Login组件 但是一直显示 组件被定义但从未使用 的字样 但是我明明就有引用吖 解决方法 原来是组件的文件名首字母需要大写 因为要做项目 但是React的基础课程还没学完 只好以这种半桶水的知识与头脑去做项目 难免会遇到很多困
  • 关于车载以太网理解

    目录 1 车载以太网概述 2 物理层 PHY 2 1 总体说明 2 2 物理层架构 2 3 物理层控制器的架构 2 4 物理层编码原理 3 链路层 MAC 3 1 MAC控制器架构 3 2 MAC地址 3 3 数据传输 3 4 MAC帧格式
  • 【拜小白的机器学习】5-机器学习的评估度量标准(评估)

    在上一节中我们主要讲到机器学习的评估方法 其中重点是讲解了三种对数据集的划分方式 包括留出法 hold out 交叉验证法 k fold cross validation 自助法 bootstrap 本节来看看机器学习的评估度量标准 其中我
  • Spring之功能使用

    文章目录 注入bean 配置文件 set方式 构造方法注入 根据参数类型注入 根据构造函数的顺序 类型和顺序混合使用 使用name来注入 工厂模式注入 少用 注入不同的类型 字面量 引用其他bean 内部bean 设置null 联级设置属性
  • html+css+js实现星空特效

    html css js实现星空特效 本文已同步到凯文的博客https kevindurant source github io 废话不多说直接上代码 效果是一个星空旋转和文字逐渐出现的效果 文字是逐渐出现的 星空中的小球是旋转的 效果视频博
  • 词法分析器简介

    词法分析器简介 引言 编译器的工作的开始 就是读入源码 预编译先不考虑 然后 去除一些空字符 然后经过词素匹配 并和其属性 可选 组成一个的词法单元 多个词法单元 连接成词法单元序列 自此 此法分析器的工作就算完成了 呵呵 就这么简单 可见
  • sourcetree创建分支与分支合并

    一 Sourcetree简单介绍 通过Git可以进行对项目的版本管理 但是如果直接使用Git的软件会比较麻烦 因为是通过一条一条命令进行操作的 Sourcetree则可以与Git结合 提供图形界面 使用会方便很多 Git和Sourcetre