如何进行本地分支管理

2023-11-08

如何进行本地分支管理

分支是分步添加功能的方式,在不影响主线的同时继续工作,在分支完成后合并到主线,使得主线时刻处在可运行的模式。

#Git进行分支管理

显示分支一览表

git branch显示分支
在这里插入图片描述
可以看出现在我们只有一个主分支(master)

创建分支

git branch 分支名称1 在当前分支下创建分支
在这里插入图片描述
当前分支为master,在master下输入git branch A,即在master分支下创建分支。

转到新创建的分支

git checkout 分支名称 转到该分支。
在这里插入图片描述
可以看到 当前分支从master分支转到了A分支。

注意: 当你使用git checkout A时,A分支内的内容会替代你的工作目录的内容(因为A分支从master中分支出,但还未作任何更改,因此在工作目录中并无变化)

创建分支并转到新创建的分支

一步解决前面两步的方式
git checkout -b B新建B分支并转到B分支。
在这里插入图片描述


提示:对A分支做更改不影响B分支和master分支的内容。


分支合并

当我们对B分支做了修改(在B分支的readme.md文件中添加 “这是B分支” ),想将B分支合并到A分支上时。

  1. 将分支切换到被合并的分支(这里为Agit checkout A
    在这里插入图片描述
    切换回A分支后,打开工作目录readme.md文件,发现 “这是B分支” 不在其中,说明AB分支是完全独立的两个文件。

  2. 使用$ git merge B,将B分支合并到A分支。
    在这里插入图片描述
    再打开工作目录中的readme.md文件,发现在文件中再次出现 “这是B分支” 的文字。说明分支合并成功。

注意点:

  • 如若没有提交修改了的工作目录中的内容,直接改变当前分支,Git会提醒M,表示工作区中的内容未提交。
    在这里插入图片描述
    需要 git add -Agit commit -m "提交信息" 完成提交。

删除分支

git branch -d (branchname) 删除branchname分支

现在我们有如下三个分支
在这里插入图片描述
使用删除分支命令删除B分支。
在这里插入图片描述
再次查看分支
在这里插入图片描述
发现B分支被成功删除。

冲突合并

若我们将A分支中readme文件改为如下(记得提交)
在这里插入图片描述
master分支中readme文件改为如下(记得提交)
在这里插入图片描述
现在我们有如下状态
在这里插入图片描述
如若现在将A分支合并到master分支,使用git merge A,则出现如下提示
在这里插入图片描述
这时打开冲突文件,会发现变为如下格式
在这里插入图片描述
将冲突文件修改为如下内容
在这里插入图片描述
再提交到master分支。
在这里插入图片描述
可以看到提交后,由master|MERGING 分支变为master分支,说明合并成功


注意:若出现如下提示,说明你在工作区的内容还未提交,请先提交再合并!
在这里插入图片描述


最后删除A分支
git branch -d A .

#Tortoise进行分支管理

显示分支

版本分支图(G)可显示版本更新进程。

创建分支

创建分支(B)... 点击后如下
在这里插入图片描述

  • 分支:输入分支名称
  • 基于:选择以哪一个分支为根

创建C分支,并切换到C分支。

切换分支

切换/检出(W)打开后如下:
在这里插入图片描述
可选择切换到的分支

分支合并

修改C分支中readme文件为如下并提交。
在这里插入图片描述
切换到master分支,然后合并(M),打开如下:
在这里插入图片描述
选择合并的分支,点击确定。
在这里插入图片描述
删除分支。

冲突合并

同样,创建D分支,对D分支做修改,在对master分支做修改,使两个分支产生冲突。

在master分支下合并(M)在这里插入图片描述
选择D分支合并。

弹出如下提示框。
在这里插入图片描述
打开冲突文件
在这里插入图片描述
修改冲突位置,提交到master分支。弹出下图:让你不要取消任何提交文件。
在这里插入图片描述
直接提交弹出下图,让你修改日志信息,来确保你修改了冲突

在这里插入图片描述
放弃提交后修改日志信息,再提交。

提交成功

#VS2019进行分支管理

显示分支

在这里插入图片描述

创建分支

Git -》 新建本地分支位置(N)

切换分支

管理分支(M)中双击或在选定分支上点击enter切换分支。

分支合并

在需要被合并的分支上右键,选择将“D”合并到“master”(M)
在这里插入图片描述

冲突合并

若出现合并冲突,上方出现提示
在这里插入图片描述
点击解决冲突
在这里插入图片描述
在未合并的更改中点击main.cpp,打开下方窗口
在这里插入图片描述
或直接打开冲突文件修改。
在这里插入图片描述
最后点击上方接收合并
再进行提交
在这里插入图片描述
最后删除D分支

补充

VS2019提交到GitHub中文乱码问题

因为网页的编码一般为 utf8 而VS2019中的编码为 中文(GB2312)。
如何修改VS2019编码

参考资料

廖雪峰的官方网站
Git 菜鸟教程

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

如何进行本地分支管理 的相关文章

  • 将新更新从原始 GitHub 存储库提取到分叉的 GitHub 存储库

    我在 GitHub 上分叉了某人的存储库 并希望使用原始存储库中的提交和更新来更新我的版本 这些是在我分叉我的副本后制作的 如何提取在源中所做的更改并将它们合并到我的存储库中 您必须将原始存储库 您分叉的存储库 添加为远程存储库 来自有关分
  • 提交 ID 从哪里来?

    我只是对此很好奇 提交 ID 不能是随机的 因为它们需要是唯一的 不过 它们似乎是随机的 这让我想知道 为什么它们不只是连续的数字 我的意思是 它们只需要在存储库中是唯一的 对吧 或者我在这里错了 Thanks Git 提交 ID 是 SH
  • 有时 git 告诉我每个文件都是新的且未暂存?

    我将对文件进行更改 转到 Windows UI 的 GitHub 提交我的更改 然后点击同步按钮 然后它说错误 尝试使用 shell 代替 所以我进入 shell 并输入git status 它告诉我存储库中的每个文件都是新的且未暂存 大约
  • 为什么某些 Git 分支名称中包含斜杠?

    我正在阅读本教程https www atlassian com git tutorials syncing git fetch https www atlassian com git tutorials syncing git fetch
  • 使用 Dropbox 作为跨多台机器的 git 工作目录 - 提交不能完美同步

    首先 我想强调这个问题与在 Dropbox 上托管我的中央存储库无关 而且我对使用 git 还很陌生 我能找到的其他涉及 Dropbox 和 git 的问题都没有真正回答我的问题 它们要么是关于使用 Dropbox 托管您的存储库 要么是关
  • 使用 versioneer 和 GitHub 更新版本号

    我在用versioneer适用于多个 GitHub 托管的 Python 项目 看来 versioneer 已安装并且工作正常 我可以调用project version 但是我忘记了如何更新版本号的过程 如果有什么东西在setup cfg
  • Git:由于看似随机的合并,更改不断丢失

    我有一种感觉 这将是一个显而易见的答案 但我似乎无法解决 似乎发生的情况是 我向服务器提交 推送了一些更改 并且我的副本上的一切都显示正常 然后 另一位开发人员从同一分支的服务器中拉取 据我所知 据称看到了我的更改 进行一些修改 将它们提交
  • 当前本地调试 Travis 构建的工作流程是什么?

    One 曾经能够 https stackoverflow com questions 16677232 where can i download the 64 bit travis ci vm images to 下载流浪盒 http re
  • 子 git 存储库作为主存储库的子集

    我正在寻找一种方法来设置 git 存储库 其中包括来自较大存储库的文件子集 并从该主存储库继承历史记录 我的主要动机是能够通过 GitHub 共享代码子集 我目前通过单个 git 存储库管理我的研究相关 主要是 Matlab 代码 代码本身
  • 有没有一种方法可以非交互地压缩大量提交?

    我正在尝试压缩一系列提交 HEAD 到 HEAD 3 有没有一种快速的方法可以做到这一点 或者我需要使用 rebase interactive 确保你的工作树是干净的 然后 git reset soft HEAD 3 git commit
  • 如何在 VS Code 中仅提交跟踪文件?

    git status 显示以下三个信息 要提交的变更 分阶段变更 未暂存提交的更改 未暂存更改 未跟踪的文件 我曾经git commit a 它提交 1 和 2 然而VS代码Commit All提交 1 2 和 3 Commit Stage
  • Git:当文件位于嵌套 git 存储库中时强制“添加”

    我想添加一个包含在父存储库中的嵌套 git 存储库中的文件 我正在开发一个在我的项目中使用的库 然而git add nested repo myfile不做任何事情 我可以尝试重命名 git文件在进行提交时 但是当我重命名回时 我担心会出现
  • 如何为新的 eclipse (neon) java 项目初始化 git

    我安装了 eclipse Neon 的新副本 并在一个新的闪亮工作区中创建了一个新的 gradle java 项目 将 git 添加到聚会中的最佳实践是什么 我读到在项目目录中初始化 git 是真是个坏主意 https stackoverf
  • Egit 无法检测到本机 Git 的安装路径“gitPrefix”

    如何解决这个问题 警告 EGit 无法检测到本机 Git 的安装路径 gitPrefix 因此 Egit 无法尊重系统级别 Git 设置可以在本机 Git 安装目录下的 gitPrefix etc gitconfig 中配置 正如我在 eg
  • 如何在 git diff 中按标点符号拆分单词?

    我对以下命令有一些运气 git diff color words lt gt space lt gt 但它似乎没有在第一个字符类中正确地否定方括号 我试过这个 git diff color words lt gt space lt gt 为
  • git分支和标签如何存储在磁盘中?

    我最近检查了我工作中的一个 git 存储库 其中有 10 000 多个分支和 30000 多个标签 新克隆后 存储库的总大小为 12Gigs 我确信没有理由拥有 10000 个分支机构 所以我相信它们会占用磁盘中相当大的空间 所以 我的问题
  • git:如何查明某个分支是否有拉取请求?

    我在 git 分支上 有没有办法查看该分支是否有拉取请求 在这种特殊情况下 Atlassian Stash 用于管理拉取请求 当然我可以使用Stash的Web界面来搜索拉取请求 但我也可以仅使用 git 命令行工具从脚本执行此操作吗 Cor
  • GIT 中的重复合并。它如何计算差异?

    我一直在做一项研究 试图了解 GIT 合并是如何工作的 我知道有几种合并类型 如递归 章鱼等 我发现解析 递归是最常用的 并且递归合并仅在存在多个共同祖先 基础时才有用 但是 我找不到从分支重复合并到主节点时使用哪种算法 或者如何计算祖先
  • 有没有办法列出Git中未修改的文件?

    我从另一个来源以 tarball 的形式获取了一些更改 我想知道哪些文件没有更改 目标是 Git 克隆 因此可以轻松查看新增内容和更改内容 有人知道如何获取未更改内容的列表 不包括未跟踪的内容 吗 编辑 换句话说 我希望利用 Git 来查找
  • 判断 Git 提交是否是合并/恢复提交

    我正在编写一个脚本 需要检查特定提交是否是合并 恢复提交 我想知道是否有 git 技巧 到目前为止我想到的 我绝对不想依赖这里的提交消息 是检查HASH 2看看我是否没有收到错误 是否有更好的方法 判断某个东西是否是合并很容易 这是不止一位

随机推荐

  • 最大化TensorFlow* CPU性能

    用户可以在v2 5之后的官方x86 64 TensorFlow 设置环境变量TF ENABLE ONEDNN OPTS 1来启用这些CPU优化 export TF ENABLE ONEDNN OPTS 1 大多数建议都适用于官方x86 64
  • 在有NVIDIA显卡的机器上安装Ubuntu 18.04 LTS的一些建议

    在装有NVIDIA显卡的机器上安装Ubuntu 18 04 LTS的一些建议 如果安装途中出现问题 导致不能正常进入系统 请看以下步骤 一 编辑Grub Ubuntu的引导程序 二 root下更改 三 重启进入系统 下载驱动 如果安装途中出
  • Raven2渗透

    1 实训目的 通过此次实验来学习对Raven2的渗透 Raven 2是中级boot2root VM 有四个要捕获的标志 在多次破坏之后 Raven Security采取了额外的措施来加固其Web服务器 以防止黑客 找到四个flag 学习一些
  • /etc/login.defs配置文件详解

    etc login defs 文件是用来定义创建用户时需要的一些用户配置信息 如创建用户时 是否需要家目录 UID和GID的范围 用户及密码的有效期限 家目录的权限 密码加密方式等等
  • SpringBoot开发使用篇(2)—数据层解决方案

    目录 一 数据层解决方案 1 1 SQL 1 1 1 数据源配置 Hikari 1 1 2 持久化技术 JdbcTemplate 1 1 3 H2数据库 1 2 NoSQL 1 2 1 Redis 1 2 2 Mongodb 1 2 3 E
  • 链式法则

    2个事件同时发生的概率 P a b P a b P b 其中 P a b 表示 a和b事件同时发生的概率 P a b 是一个条件概率 表示在b事件发生的条件下 a发生的概率 3个事件的概率链式调用 P a b c P a b c P b c
  • 三、Linux网络编程:Socket编程-网络模型

    3 Socket编程 网络模型 3 1 OSI七层模型 图解 每层的功能 模型 功能 物理层 比特流传输 数据链路层 网络控制 链路纠错 网络层 寻址 路由 传输层 建立主机端到端的连接 会话层 建立 维护和管理会话 表示层 格式转化 加密
  • 解决sqlplus /as sysdba登陆oracle无效

    安装完oracle 然后执行完下面的自动配置脚本后 没有任何地方设置过密码 etc init d oracledb ORCLCDB 19c configure 在这个命令执行完成后 会提醒查看完整日志的地方 Look at the log
  • C语言100例 第一天习题练习

    C语言中基本的输入与输出 例题1 输入两个正整数a和b 输出a b的值 其中a b 10000 include
  • Centos7 开机卡死在桌面

    问题 Centos7 开机死卡成了这样 一动不动 如下图 原因 一般来说是一些开机自启的东西使得Centos卡死 有可能是在 etc rc d rc local文件里加入的脚本 也有可能 etc fstab文件里面自动挂载的硬盘 解决方法
  • 【自然语言处理】情感分析(三):基于 Word2Vec 的 LSTM 实现

    情感分析 三 基于 Word2Vec 的 LSTM 实现 本文是 情感分析 系列的第 3 3 3 篇 前两篇分别是 自然语言处理 情感分析 一 基于 NLTK 的 Naive Bayes 实现 自然语言处理 情感分析 二 基于 scikit
  • jmeter调试错误大全

    一 前言 在使用jmeter做接口测试的过程中大家是不是经常会遇到很多问题 但是无从下手 不知道从哪里开始找起 对于初学者而言这是一个非常头痛的事情 这里结合笔者的经验 总结出以下方法 二 通过查看运行日志调试问题 写好脚本后 可以先试着运
  • 【保姆级】Python最新版3.11.1开发环境搭建,看这一篇就够了(适用于Python3.11.2安装)

    工欲善其事必先利其器 在使用Python开发程序之前 在计算机上搭建Python开发环境是必不可少的环节 目前Python最新稳定版本是3 11 1 且支持到2027年 如下图所示 本文手把手带你从0 到1搭建Python最新版3 11 1
  • 如何在Mac上远程控制另一台Mac

    1 先请在苹果 Mac 电脑上的 系统偏好设置 窗口中打开 共享 功能 2 接着在共享窗口中的左侧点击启用 屏幕共享 选项 3 当屏幕共享功能打开以后 请点击 电脑设置 按钮 4 随后请勾选二个选项 VNC 显示程序可以使用密码控制屏幕 并
  • 异步赠书:9月重磅新书升级,本本经典

    本期活动已结束 新活动地址 http blog csdn net epubit17 article details 78210459 获奖读者名单 如下 领取赠书步骤 1 加入异步社区活动QQ群439467328 2 在下方地址中填写收件信
  • java.lang.NoSuchMethodError: javax.servlet.http.HttpServletRequest.isAsyncStarted()Z 的解决

    jetty 9 嵌入式开发时 启动正常 但是页面一浏览就报错如下 java lang NoSuchMethodError javax servlet http HttpServletRequest isAsyncStarted Z 原因 j
  • 用i18n 实现vue2+element UI的国际化多语言切换详细步骤及代码

    一 i18n的安装 这个地方要注意自己的vue版本和i1n8的匹配程度 如果是vue2点几 记得安装i18n的 8版本 不然会自动安装的最新版本 后面会报错哦 查询了下资料 好像最新版本是适配的vue3 npm install vue i1
  • angular请求的防抖(debounce)

    在开发项目过程中 我们会遇到这样的场景 当用户在搜索框中输入名字时 当用户输入完毕后 自动发送搜索请求 实时响应 而不是多按一个按钮或者回车键 如果按照常规思路 我们会绑定input的keyup事件 每次击键后 执行相对应的请求函数 但是
  • MyBatis 3 提示 Column ‘******‘ specified twice

    造成错误的原因是 Mapper xml 配置文件 insert 语句写入重复字段 错误配置文件展示
  • 如何进行本地分支管理

    文章目录 如何进行本地分支管理 Git进行分支管理 显示分支一览表 创建分支 转到新创建的分支 创建分支并转到新创建的分支 分支合并 删除分支 冲突合并 Tortoise进行分支管理 显示分支 创建分支 切换分支 分支合并 冲突合并 VS2