git 的基本操作 Master and branch的版本合并 @ VS 1019

前言:

在VS 2019有git 的可视化管理,但,感觉微软其实就是在git上包了一层。版本冲突后,还是要靠git 的命令行代码搞。本文记录了一次,branch和master的版本合并的过程。作为,后续的参考。

【注意,这个是一个本地版本的例子】


1 版本情况:

1 查看本地版本:

git status

 

确认在分支版本上, 

可以用

git log

 

 看一下,现在是在HEAD -> Branch.... 分支上面,

分支版本的情况,并确认分支版本的版本ID,cbef9b7b6eb8658ee7a96f12c61c5957e99316e1

1.1 看主支版本:

git log master

 

并获取,准备合并的主支版本的ID , 71ee9e4af6a7e2052281a114b73396fb1f2dde5b


2 CHECK OUT 主支版本:

git checkout master

提示从分支到主支版本的改变, 

 用git log 确认一下,主支版本情况

确认我们在主支版本上了,

然后, 最好用

git reflog

 查一下所有,支的版本,主,分支,包括,已经删除的支的版本,


3 Merge

选定上面显示的分支版本ID,进行Merge

$ git merge cbef9b7

Performing inexact rename detection: 100% (585/585), done.
Performing inexact rename detection: 100% (595/595), done.
。。。。。。
CONFLICT (content): Merge conflict in AAMED.dir/Debug/AAMED.log
Automatic merge failed; fix conflicts and then commit the result.
【发现冲突文件】

注意,执行后,在主支上,命令行会显示,你现在是正在合并版本的状态:蓝色的字体,MERGING


 4 解决冲突:为了标识颜色的信息,这里截图:

4.1 很乱的各种冲突信息:

【案】其实我们只需要解决绿框里面两个源码冲突,其他的都不是我们要的。


4.2 先把关系的变更给交到提交列表:

在红区的两个CPP文件,是我们真正要提交的源码:

我们先在编码的VS 2019IDE里面打开这两个文件:会发现,GIT已经自动将Master 和 Branch的版本比较,冲突标记加到对应的源码的上下文里面了:

<<<<<<< HEAD

这是主分支中的内容 (Master)

=======

这是要合并的分支中的内容 (Branch)

>>>>>>>

要合并的分支

由于我们是把Branch Merge 到 Master,

所以,Master的原来的东西,要被Branch给替换掉,也就是

这段信息的意义:

<<<<<<< HEAD

这是主分支中的内容 (Master) 这里面的内容要被替换掉

=======

这是要合并的分支中的内容 (Branch) 这里面的内容要保留

>>>>>>>

不过,具体也要看你的应用情况,你需要自己做出判断,反正,要决定哪些保留,哪些删除,然后,去掉

 <<<<<<< HEAD

=======

>>>>>>>

这些辅助线,你的源码就改完了,可以存一下。

然后,我们要做的,就是把解决好的冲突的文件,加到要提交的列表里面:

git add
$ git add src/main.cpp
$ git add src/FLED_drawAndWriteFunctions.cpp

 加好后,用git status 看一下,是否在绿区:

OK ,在绿区了,但是,绿区有一堆,我都不想管的文件log啥的,要去掉,

现在要去掉不行进行版本管理的文件,有两个步骤:

步骤1 ,如果要长久的去掉这个文件,以后都不要管了:

那要通过在.gitignore文件中添加相应,在项目的版本控制路径下面,就是当前你操作的目录路径即可:

vim .gitignore

就可以打开相关的配置文件了,然后,想屏蔽哪个文件,哪类文件,直接写在里面的规则来实现

# 例如,所有的log文件
*.log
# 例如,目录Debug
/Debug# 忽略所有文件
*
# 但不忽略.cpp文件
!*.cpp
# 也不忽略.gitignore和README.md文件
!.gitignore
!README.md

 步骤2 ,就是当前的绿区的文件:

用命令:

git reset 

比如,绿区也就是等待提交区,有一堆tlog的文件:

我们执行,

$ git reset HEAD *.tlog

再用git log查看,就有:

这样tlog的文件都去掉,然后,类似的方法去掉所有的绿区不需要提交的文件。


 现在绿区OK了,但是,红区还有文件

先处理: Unmerged paths 文件:

“both modified”意味着在当前分支和要合并的分支中对这些文件都有修改,并且这些冲突还没有被解决。
而且,由于这些文件已经进入和红区(也就是暂存区)(staged)了
通过上面的.gitignore 文件,已经来不及了

git reset HEAD 

 我们通过,上面的命令来取消这些暂存区的文件,红区文件

git reset HEAD -- AAMED.dir/Debug/*.obj 

 执行后,我们看到Staged的红区文件里面obj的文件就被拿掉了,

同样方法,我们拿到所有我们不想进行版本控制的,已经进入暂存区的文件:


接下来,我们来处理,连staged都没进去的问题
 Changes not staged for commit:

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   .gitignore
        modified:   AAMED.dir/Debug/AAMED.log
        modified:   AAMED.sln
        modified:   AAMEDemo.dir/Debug/AAMEDemo.Build.CppClean.log
        modified:   AAMEDemo.dir/Debug/AAMEDemo.ilk
        modified:   AAMEDemo.dir/Debug/AAMEDemo.log
        modified:   AAMEDemo.dir/Debug/AAMEDemo.tlog/CL.command.1.tlog
        modified:   AAMEDemo.dir/Debug/AAMEDemo.tlog/CL.read.1.tlog
        modified:   AAMEDemo.dir/Debug/AAMEDemo.tlog/CL.write.1.tlog
        modified:   AAMEDemo.dir/Debug/AAMEDemo.tlog/link.read.1.tlog
        modified:   AAMEDemo.dir/Debug/AAMEDemo.tlog/link.write.1.tlog
        modified:   AAMEDemo.dir/Debug/Contours.obj
        modified:   AAMEDemo.dir/Debug/EllipseNonMaximumSuppression.obj
        modified:   AAMEDemo.dir/Debug/FLED.obj
        modified:   AAMEDemo.dir/Debug/FLED_Initialization.obj
        modified:   AAMEDemo.dir/Debug/FLED_PrivateFunctions.obj
        modified:   AAMEDemo.dir/Debug/FLED_drawAndWriteFunctions.obj
        modified:   AAMEDemo.dir/Debug/Group.obj
        modified:   AAMEDemo.dir/Debug/LinkMatrix.obj
        modified:   AAMEDemo.dir/Debug/Node_FC.obj
        modified:   AAMEDemo.dir/Debug/Segmentation.obj
        modified:   AAMEDemo.dir/Debug/Validation.obj
        modified:   AAMEDemo.dir/Debug/adaptApproxPolyDP.obj
        modified:   AAMEDemo.dir/Debug/adaptApproximateContours.obj
        modified:   AAMEDemo.dir/Debug/main.obj
        modified:   AAMEDemo.dir/Debug/vc142.pdb
        modified:   ALL_BUILD.vcxproj
 

 

 用下面的命令来处理:

git restore

例如,去掉 AAMEDemo.dir/ 下的所有的文件

$ git restore  AAMEDemo.dir/*.*

最暴力的方法是:全部都不管了啊

$ git restore *

 


现在就剩下:

Untracked files:
这是本来就没有版本控制的文件,我们可以不理他就好了。这样,提交的暂存区(绿区)就剩下我们要提交的文件了。


5 提交:

利用以下命令:

git commit

然后,可以加上注解,例如:

$ git commit -m "now we merge the master and branch toghter before modify for EXE merge into C#"

git status 

我们看到,已经回到master,然后,该处理的文件都处理好了,就剩下本来没有加入版本管理的文件:


6 最后,看版本merge的情况

用git log命令,这时候,可以看到master和branch的情况,这样就完成了版本的合并工作:


最后,我们看一下VS 2019的git中的结果:

在VS 2019的git IDE的窗口里面

现在可以看到branch和master主,分支的版本。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/22957.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【二进制部署k8s-1.29.4】十三、metrics-server的安装部署

文章目录 简介 一.metrics-server的安装 简介 本章节主要讲解metrics-server的安装&#xff0c;metrics-server主要是用于采集k8s中节点和pod的内存和cpu指标&#xff0c;在观察几点和pod的实时资源使用情况还是比较有用的&#xff0c;如果需要记录历史信息&#xff0c;建议采用…

运行编译openjdk12-33

编译环境 ubuntu20 Ubuntu里用户可以自行选择安装GCC或CLang来进行编译&#xff0c;但必须确保最低的版本为GCC 4.8或者CLang 3.2以上&#xff0c;官方推荐使用GCC 7.8或者CLang 9.1来完成编译。 源码 https://github.com/openjdk/jdk/tree/jdk-12%2B33 安装gcc sudo apt…

使用neural_network_console训练模型并导出.nnb文件应用于索尼spresense

一.创建数据集 首先你需要一个csv标记的数据集 然后我们使用neural_network_console将数据集进行处理 dataset->create dataset->image 用户可以通过该界面选择源目录&#xff08;Source Dir&#xff09;&#xff0c;输出目录&#xff08;Output Dir&#xff09;&…

哈希表、HashMap\Map-1657. 确定两个字符串是否接近

题目链接及描述 1657. 确定两个字符串是否接近 - 力扣&#xff08;LeetCode&#xff09; 题目分析 今日看到这道题目&#xff0c;乍一看觉得非常熟悉&#xff0c;对于将一个字符串转换为另一个字符串的题目之前做过一些。分析题目&#xff0c;题目中所述就是两种操作&#xff…

嵌入式软件跳槽求指导?

嵌入式软件行业的跳槽确实需要一些特定的策略和技巧。我这里有一套嵌入式入门教程&#xff0c;不仅包含了详细的视频讲解&#xff0c;项目实战。如果你渴望学习嵌入式&#xff0c;不妨点个关注&#xff0c;给个评论222&#xff0c;私信22&#xff0c;我在后台发给你。 因为这个…

列存在 OceanBase 数据库架构中的应用与演进

OceanBase 4.3 版本上线了列存功能&#xff0c;以满足实时分析的需求。 本文作为《特性解读&#xff1a;列存技术》的后续&#xff0c;将详细阐述列存技术在OceanBase数据库架构中的应用、发展历程&#xff0c;以及未来的趋势。 一、前言 1970 年&#xff0c;关系模型之父 Co…

LeakSearch:针对网络公开凭证的安全扫描与检测工具

关于LeakSearch 在红队演戏过程中&#xff0c;往往需要获取到针对目标域的访问权限。在这个过程中&#xff0c;很多红队人员会选择使用暴露在互联网上的代理服务器来实现目标域的访问&#xff0c;那么此时就需要在互联网上收集公开暴露的凭证信息。 对于蓝队来说&#xff0c;…

Playwright+Python+Pytest:基础方法二次封装简化及链式调用

引言 随着Web应用的日益复杂化&#xff0c;自动化测试成为了确保软件质量的关键环节。Playwright 是一个强大的自动化库&#xff0c;它支持在 Chromium、Firefox 和 WebKit 中运行自动化脚本。本文将介绍如何使用 Playwright 的 Python 同步 API 来简化点击和填充操作&#xf…

阿里云邮件推送配置教程:API配置的步骤?

阿里云邮件推送服务如何使用&#xff1f;如何配置邮件推送服务&#xff1f; 阿里云提供了强大的邮件推送服务&#xff0c;帮助企业高效地发送邮件通知、验证码、营销活动等。Aok将详细介绍阿里云邮件推送的配置教程&#xff0c;以及API配置的步骤&#xff0c;同时简要提及AokS…

[数据集][目标检测]盲道检测数据集VOC+YOLO格式2173张1类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;2173 标注数量(xml文件个数)&#xff1a;2173 标注数量(txt文件个数)&#xff1a;2173 标注…

如何组织基于Sqlalchemy的项目

在使用 SQLAlchemy 构建项目时&#xff0c;可以遵循一些常用的组织结构和最佳实践&#xff0c;以确保项目清晰、易于维护。下面就是我在构建项目时遇到的一些问题&#xff0c;并做了详细的记录&#xff0c;为了方便大家学习少走一些弯路。 1、问题背景 在基于Sqlalchemy的项目…

IDEA的使用配置Maven(及selenium+webdriver的下载配置)

一. 下载maven 1. maven官网下载链接 2.​​安装第二行第一列的zip压缩包 ​​​​​​​​ 二. 配置环境变量 1.新建环境变量 2.在系统变量Path环境变量中添加%Maven_HOME%\bin 三.验证环境变量是否配置成功 winr >cmd>mvn -v 如果出现Maven的版本信息&#xff0…

Matlab解决矩阵微分方程建模(代码开源)

#用matlab解决施密特正交规范化矩阵之后&#xff0c;我又想到矩阵的微分方程计算量真的太大了&#xff0c;来回转化让我头大&#xff0c;于是我尝试了一下用matlab建立模型来解决这类问题。 代码部分如下&#xff1a;注解还挺清晰的&#xff1a; %%%解微分方程组%eg&#xff…

类的特殊成员函数

使用类的嵌套&#xff0c;并自定义析构函数 #include <iostream>using namespace std; class Per{ private:string name;int age;double hight;double weight; public:Per(string name,int age,double hight,double weight):name(name),age(age),hight(hight),weight(we…

图片如何修改尺寸?四种好用的修改图片尺寸方法!

图片如何修改尺寸&#xff1f;图片是一种常见的文件类型&#xff0c;它存在于什么生活的方方面面&#xff0c;虽然图片很好用&#xff0c;但是大家日常也要注意图片的尺寸&#xff0c;如果图片尺寸不对是会带来很多问题的&#xff0c;下面小编就举例说明几个问题&#xff0c;首…

Unity 自定义房间布局系统 设计与实现一个灵活的房间放置系统 ——物体占用的区域及放置点自动化

放置物体功能 效果&#xff1a; 功能&#xff1a; 自定义物体占用区域的大小一键调整占用区域调整旋转度数&#xff0c;分四个挡位&#xff1a; NoRotation&#xff1a;该物体不能调整旋转。MaximumAngle&#xff1a;每次转动90。NormalAngle&#xff1a;每次转动45&#xff…

根据租户id切换数据源

花了半天时间&#xff0c;使用spring-boot实现动态数据源&#xff0c;切换自如 在一个项目中使用多个数据源的情况很多&#xff0c;所以动态切换数据源是项目中标配的功能&#xff0c;当然网上有相关的依赖可以使用&#xff0c;比如动态数据源&#xff0c;其依赖为&#xff0c;…

探索营销系统业务架构的设计与应用

随着市场竞争的日益激烈和消费者需求的不断变化&#xff0c;营销系统作为企业营销管理的重要组成部分&#xff0c;扮演着至关重要的角色。本文将深入探讨营销系统业务架构的设计与应用&#xff0c;从客户关系管理、营销活动管理、数据分析和智能化服务等方面进行全面解析&#…

Innodb Buffer Pool缓存机制(四)预读与Mysql改进的LRU策略

一、什么是预读 InnoDB提供了预读(read ahead)。所谓预读&#xff0c;就是InnoDB认为执行当前的请求可能之后会读取某些页面&#xff0c;就预先把它们加载到Buffer Pool中。根据触发方式的不同&#xff0c;预读又可以细分为下边两种&#xff1a; 1.1 线性预读 InnoDB提供了一…

掘金AI商战宝典-高阶班:如何用AI制作视频(11节视频课)

课程下载&#xff1a;掘金AI商战宝典-高阶班&#xff1a;如何用AI制作视频(11节视频课)-课程网盘链接提取码下载.txt资源-CSDN文库 更多资源下载&#xff1a;关注我。 课程目录&#xff1a; 1-第一讲用AI自动做视频(上)_1.mp4 2-第二讲用AI自动做视频(中)_1.mp4 3-第四讲A…