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主,分支的版本。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

最短路径——迪杰斯特拉与弗洛伊德算法

一.迪杰斯特拉算法 首先对于最短路径来说&#xff1a;从vi-vj的最短路径&#xff0c;不用非要经过所有的顶点&#xff0c;只需要找到路径最短的路径即可&#xff1b; 那么迪杰斯特拉的算法&#xff1a;其实也就与最小生成树的思想类似&#xff0c;找到较小的&#xff0c;然后…

JavaScript 学习笔记 总结

回顾&#xff1a; Web页面标准 页面结构&#xff1a;HTML4、HTML5页面外观和布局&#xff1a;CSS页面行为&#xff1a;JavaScript强调三者的分离前后端分离开发模式 响应式设计Bootstrap框架入门 Bootstrap总结 基础 下载和使用基础样式&#xff1a;文本样式、图片样式、表格…

多表连接查询和子查询

一、连接查询 连接查询是SQL语言最强大的功能之一&#xff0c;它可以执行查询时动态的将表连接起来&#xff0c;然后从中查询数据。 1.1、连接两表的方法 在SQL中连接两表可以有两种方法&#xff0c;一种是无连接规则连接&#xff0c;另一种是有连接规则连接。 无连接规则连…

matlab模拟黑洞包含吸积盘和喷流,简单模拟

本文介绍 黑洞的简单实现和模拟 代码 % Black Hole Simulation in 3D% Clear workspace and figures clear; close all; clc;% Create figure and set axis properties figure; axis([-10 10 -10 10 -10 10]); hold on; grid on; view(3);% Parameters for the black hole a…

【数据库】SQL--DDL(初阶)

文章目录 DDL1. 数据库操作1.1. 表操作1.1.1 创建1.1.2. 查询 2. 数据类型及案例2.1 数值类型2.2 字符串类型2.3 日期时间类型2.4 案例练习 3. 表操作--修改3.1 添加字段3.2 修改字段3.3 修改表名 4. 表操作-删除4.1 删除字段4.2 删除表 5. DDL小结 更多数据库MySQL系统内容就在…

MySQL经典面试题:谈一谈对于数据库索引的理解~~

文章目录 什么是索引&#xff1f;为什么要引入索引&#xff1f;引入索引的代价操作索引的SQL语句索引背后的数据结构B树B 树 回顾思考☁️结语 什么是索引&#xff1f; 数据库中的索引&#xff0c;就相当于一本书的目录。 什么是书的目录&#xff1f;相信大家都并不陌生&#…

【三】Linux网络配置详解

在RHEL 7系统中配置网络的方法有好几种&#xff0c;咱们这边先讲一下使用图形化工具和修改配置文件这两种方法来配置&#xff0c;其他方法大家可以下去自己研究研究。 一、使用图形化方式配置&#xff1a; 在电脑左上角开始一次点击Applications、System Tools、Settings&…

【Flask-项目运行】解决用本机IP访问不到flask项目而用localhost可以访问到的问题

文章目录 一、问题描述二、解决办法 一、问题描述 使用 localhost 或 127.0.0.1 能访问到项目&#xff1a; 但是使用局域网 IP 访问不到&#xff1a; 二、解决办法 只需要在 app.py 中修改一行代码&#xff1a; run方法添加 host 参数指明全部 ip 可访问。

B端数据看板,其实数据可以更美的。

B端数据看板可以通过设计来提升其美观度。 色彩和配色方案&#xff1a; 选择适合品牌和数据类型的色彩搭配方案。使用渐变色、明亮的色调和对比度来突出重要的数据指标。 数据可视化&#xff1a; 使用图表、图形和数据图像来呈现数据&#xff0c;使其更易于理解和解读。选择…

2024会声会影全新旗舰版,下载体验!

在当今数字时代&#xff0c;视频内容已成为最受欢迎的媒介之一。无论是个人娱乐、教育还是商业推广&#xff0c;优秀的视频制作都是吸引观众的关键。为了满足广大用户对高质量视频制作软件的需求&#xff0c;我们隆重推出了会声会影2024最新旗舰版。这款软件不仅集成了最先进的…

手撸 串口交互命令行 及 AT应用层协议解析框架

在嵌入式系统开发中&#xff0c;命令行接口&#xff08;CLI&#xff09;和AT命令解析是常见的需求。CLI提供了方便的调试接口&#xff0c;而AT命令则常用于模块间的通信控制。本文将介绍如何手动实现一个串口交互的命令行及AT应用层协议解析框架&#xff0c;适用于FreeRTOS系统…

【数据结构】顺序表专题(学习记录)

正文开始 课前预备 1. 课程目标 C语言语法基础到数据结构与算法&#xff0c;前⾯已经掌握并具备了扎实的C语言基础&#xff0c;为什么要学习数据结构课程&#xff1f;⸺通讯录项目 2. 需要的储备知识 简单了解&#xff0c;通讯录具备增加、删除、修改、查找联系⼈等操作。要想…

Linux进程无法被kill

说明&#xff1a;记录一次应用进程无法被kill的错误&#xff1b; 场景 在一次导出MySQL数据时&#xff0c;使用下面的命令&#xff0c;将数据库数据导出为.sql文件&#xff0c;数据量大&#xff0c;导出时间长&#xff0c;于是我就将服务器重启了。 mysqldump -u username -…

队列及其应用

实验内容 请设计一个简单的模拟银行排队系统&#xff0c;要求程序具有以下4项菜单&#xff1a; 1.取号。选择该菜单后&#xff0c;为客户产生一个排队号。 2.叫号。选择该菜单后&#xff0c;显示可服务的客户排队号。 3.查看队伍。从队首到队尾列出所有排队客户的排队号。 4.退…

Vue 学习笔记 总结

Vue.js 教程 | 菜鸟教程 (runoob.com) 放一下课上的内容 Vue练习 1、练习要求和实验2的用户注册一样&#xff0c;当用户输入后&#xff0c;能在下方显示用户输入的各项内容&#xff08;不需要实现【重置】按钮&#xff09; 2、实验报告中的实验小结部分来谈谈用JS、jQuery和…

流量分析——一、蚁剑流量特征

君衍. 一、Webshell特征流量分析二、环境介绍三、使用Wireshark进行流量分析1、环境说明2、HTTP追踪流分析3、蚁剑请求体中代码块解读 四、使用BurpSurite进行流量分析1、环境配置2、抓包分析 六、总结 一、Webshell特征流量分析 对于重保、护网等攻防演练的防守方来说&#x…

AIGC专栏11——EasyAnimateV2结构详解与Lora训练 最大支持768x768 144帧视频生成

AIGC专栏11——EasyAnimateV2结构详解与Lora训练 最大支持768x768 144帧视频生成 学习前言源码下载地址EasyAnimate V2简介技术储备Diffusion Transformer (DiT)Motion ModuleU-VITLora 算法细节算法组成视频VAE视频DIT 数据处理视频分割视频筛选视频描述 模型训练视频VAE视频D…

【数智化CIO展】吉家宠物CIO张志伟:深度挖掘数据价值是数字化发展趋势,才能实现企业精细化运营...

张志伟 本文由吉家宠物CIO张志伟投递并参与由数据猿联合上海大数据联盟共同推出的《2024中国数智化转型升级优秀CIO》榜单/奖项评选。丨推荐企业&#xff1a;观远数据 大数据产业创新服务媒体 ——聚焦数据 改变商业 中国“宠物经济”热潮不断攀升&#xff0c;国内宠物市场的竞…

InnoDB存储引擎非常重要的一个机制--MVCC(多版本并发控制)

Mysql是如何实现隔离性的&#xff1f;&#xff08;锁MVCC&#xff09; 隔离性是指一个事务内部的操作以及操作的数据对正在进行的其他事务是隔离的&#xff0c;并发执行的各个事务之间不能相互干扰。隔离性可以防止多个事务并发执行时&#xff0c;可能存在交叉执行导致数据的不…

Android 如何保证开启debug模式之后再启动

很多时候会需要debug看Android启动时候的一些数据&#xff0c;但很多时候会存在自己开启debug后app已经过了自己要debug的那段代码的时机了。 那么怎么样可以保证一定能让启动后不会错过自己要debug的那段代码执行的时机呢&#xff1f; 可以用下面这行命令&#xff0c;其中co…