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.pswp.cn/web/22957.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/22957.shtml
英文地址,請注明出處:http://en.pswp.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…

人工智能的未來發展前景:機遇與挑戰

人工智能&#xff08;AI&#xff09;的發展在過去的幾十年里取得了突飛猛進的成就&#xff0c;已經成為推動全球科技創新的關鍵動力之一。隨著技術的不斷進步和應用的日益廣泛&#xff0c;AI的未來發展前景顯得更加廣闊&#xff0c;同時也面臨一系列新的機遇和挑戰。 技術革新…

使用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…

ubuntu藍牙連接問題

ubuntu藍牙連接問題 ubuntu藍牙連接問題1、安裝驅動2、優化藍牙配置文件3、解決 Failed to connect: org.bluez.Error.Failed ubuntu藍牙連接問題 之前我發現電腦有藍牙圖標&#xff0c;且能打開關閉&#xff0c;就以為藍牙默認已經配置好了&#xff0c;直到有一天我嘗試連接我…

嵌入式軟件跳槽求指導?

嵌入式軟件行業的跳槽確實需要一些特定的策略和技巧。我這里有一套嵌入式入門教程&#xff0c;不僅包含了詳細的視頻講解&#xff0c;項目實戰。如果你渴望學習嵌入式&#xff0c;不妨點個關注&#xff0c;給個評論222&#xff0c;私信22&#xff0c;我在后臺發給你。 因為這個…

【設計模式】裝飾器模式(結構型)??

文章目錄 1.概念1.1 什么是裝飾器模式1.2 優點與缺點 2.實現方式3. Java 哪些地方用到了裝飾器模式4. Spring 哪些地方用到了裝飾器模式 1.概念 1.1 什么是裝飾器模式 它允許用戶在不修改現有對象的代碼的情況下向對象添加新的功能&#xff1b;這種模式是通過創建一個包含該對…

前端面試題日常練-day53 【面試題】

題目 希望這些選擇題能夠幫助您進行前端面試的準備&#xff0c;答案在文末 1. 在PHP中&#xff0c;以下哪個函數可以用于從一個數組的末尾刪除一個元素并返回被刪除的元素&#xff1f; a) array_pop() b) array_push() c) array_shift() d) array_unshift() 2. 在PHP中&…

列存在 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…

數據流圖要點和難點實際應用

數據流圖(Data Flow Diagram,DFD)是一種圖形化表示信息系統中數據流動和處理的方式。它主要用于描述系統如何接收輸入數據,經過一系列的處理步驟,然后產生輸出數據。數據流圖在系統設計階段特別有用,因為它可以幫助開發人員、業務分析師和其他利益相關者更好地理解系統的…

Python字符串數據類型之字符串

四、Python數據類型 4.1、Python內置數據類型 整型&#xff1a;int浮點型&#xff1a;float布爾類型&#xff1a;bool字符串&#xff1a;str二進制類型&#xff1a;bytes、bytearray復數&#xff1a;complex列表&#xff1a;list元組&#xff1a;tuple字典&#xff1a;dict a…

C#WPF控件Textbox綁定浮點型數據限制小數位方法

本文講解C#WPF控件Textbox綁定浮點型數據限制小數位方法。 XAML中,使用StringFormat來格式化TextBox的文本 <Window x:Class="WpfApp.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.m…

【使用 uiautomator2 腳本進行波點音樂app自動化操作的教程】

本教程將指導您使用 uiautomator2 庫編寫腳本&#xff0c;實現自動化操作。如果您需要在設備斷開連接或出現異常時重新連接設備并繼續執行任務&#xff0c;這里有一份詳細的代碼示例和使用說明。 環境準備 安裝 Python&#xff1a; 確保您的系統上安裝了 Python&#xff08;推…

[數據集][目標檢測]盲道檢測數據集VOC+YOLO格式2173張1類別

數據集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路徑的txt文件&#xff0c;僅僅包含jpg圖片以及對應的VOC格式xml文件和yolo格式txt文件) 圖片數量(jpg文件個數)&#xff1a;2173 標注數量(xml文件個數)&#xff1a;2173 標注數量(txt文件個數)&#xff1a;2173 標注…

基于R語言BIOMOD2 及機器學習方法的物種分布模擬與案例分析實踐技術

BIOMOD2是一個R軟件包&#xff0c;用于構建和評估物種分布模型&#xff08;SDMs&#xff09;。它集成了多種統計和機器學習方法&#xff0c;如GLM、GAM、SVM等&#xff0c;允許用戶預測和分析物種在不同環境條件下的地理分布。通過這種方式&#xff0c;BIOMOD幫助研究者評估氣候…

常用接口測試及接口抓包常用的測試工具

一、常用抓包工具 01、F12 Web端的話&#xff0c;google瀏覽器直接F12開發者模式 點擊network進行抓包分析。 02、Fiddler抓包工具 客戶端和服務端的http代理&#xff0c;客戶端所有的請求都要先經過Fiddler&#xff0c;到響應的服務端&#xff0c;然后端返回的所有數據也都…