復習Git命令、Git命令使用流程、VSCode+Git插件管理工程源碼

目錄

1 引言

2 直接整理一個常用的流程,而不是死記硬背各種命令

3 解決沖突的說明和理解

4?git fetch的說明和理解

5 真正開發不用Git命令,而是使用VSCode插件管理工程?


1 引言

以前主要用svn,Git用的少,這次再復習一下Git命令。

2 直接整理一個常用的流程,而不是死記硬背各種命令

1. 進入項目目錄
# 如果是第一次下載項目
git clone 倉庫地址.git
cd 項目目錄# 如果不是第一次,直接進入目錄
cd 項目目錄git config user.name "cumtchw"                  #不要加--global,
git config user.email "your_email@example.com"  #不要加--global
#不要加--global以免影響全局,不加--global就相當于只在當前.git/config文件中增加了下面的內容,
[user]name = cumtchweamil = xxxx.com2. 查看 / 操作本地分支
git branch                       # 查看本地分支
git checkout [branch_name]      # 切換到已有分支
git branch [branch_name]        # 創建本地分支  基于當前分支的最新提交,創建一個新的本地分支,但不自動切換到這個新分支
git checkout -b [branch_name]   # 創建并切換分支 基于當前所在的分支創建一個新分支 feature1,并切換到它3. 切換到主分支并拉取最新代碼(確保干凈)
git checkout main
git pull4. 新建功能分支(feature 名可以自由取)
git checkout -b feature-add-xxx5. 修改代碼(新增、修改或刪除)6. 保存并提交改動
git add .
git status                  # commit之前最好執行下git  status查看當前文件差異狀態
git commit -m "feat: 修改了某某功能"7. 如需解決沖突(主分支有更新、你的開發周期較長時)# 7.1 回到主分支并拉最新代碼git checkout main#這一行一定不能省,否則如果當前在feature分支,那么下面的git merge origin/main是直接把/origin/main給合并到當前分支了。git fetch origin git merge origin/main# 7.2 切換回你的開發分支git checkout feature-add-xxx# 7.3 將主分支合并進來,觸發沖突則解決git merge main8. 查看狀態、提交修改
git add .
git status                  # commit之前最好執行下git  status查看當前文件差異狀態
git commit -m "修復登錄界面崩潰 bug"#git push <遠程主機名> <本地分支名>:<遠程分支名>
9. 推送到遠程倉庫
# 推送本地 feature-add-xxx 到遠程同名分支:把我本地的 feature-add-xxx 分支,推送到遠程倉庫 origin 中去,并讓遠程也建立一個叫 feature-add-xxx 的分支。
git push origin feature-add-xxx10. 登錄 GitLab / GitHub 網頁提交 Merge Request

3 解決沖突的說明和理解

Git解決代碼沖突
1:將本地分支切換到本地默認主分支:
git  checkout [master|develop]
2:更新本地默認主分支
git  pull [master|develop]
3:切換到提交代碼本地分支
git  checkout [branch_name]
4:將本地主分支merge 到當前分支, 此時提示沖突文件
git merge [master|develop]
5:本地解決沖突文件,驗證。
6:Git提交代碼流程,push到遠程分支

問ChatGPT:
這個是不是說,比如我本來git clone了主分支,然后好幾個人都創建了自己的分支然后修改代碼,
然后可能我改的時間太久了,別人已經有人commit以及push并且merge到master了,
然后這時候我要是commit push merge肯定有沖突,所以我先不commit,我先直接在本地先merge解決沖突,
解決完之后,我再commit push以及申請merge,是這個意思嗎,

下面是ChatGPT的理解:

完全正確!你理解得非常到位,這就是這套流程的核心含義,簡單總結一下:

你的理解流程細化版

  1. 起點:你從遠程倉庫clone了代碼,基于主分支(master或develop)新建了自己的功能分支,開始開發。

  2. 多人并行開發:別人也基于主分支做了自己的開發,提交(commit)并推送(push)到遠程,且已經有人把代碼合并(merge)回了主分支。

  3. 你的分支落后了:此時遠程主分支比你本地主分支“更新”,也就是說遠程主分支已經有了你本地功能分支沒有的代碼。

  4. 直接提交可能沖突:如果你直接把你本地的功能分支代碼提交(commit)并推送(push),然后申請合并(merge request),很可能遠程主分支與功能分支代碼有沖突,合并失敗。

  5. 提前合并解決沖突

    • 先切回本地主分支,拉取最新遠程主分支代碼 git checkout master && git pull origin master

    • 切回你的功能分支 git checkout feature-xxx

    • 把最新主分支合并進功能分支 git merge master

    • 如果有沖突,在本地解決沖突,測試確認無誤

    • 提交合并結果 git commit

    • 推送功能分支 git push origin feature-xxx

  6. 申請合并請求:這時你發起合并請求,遠程主分支基本不會再出現沖突,可以順利合并。

4?git fetch的說明和理解

git checkout main #一定要有這一步
git fetch origin?
git merge origin/main

解釋:

  • git checkout main
    切換到本地的主分支 main,確保后續操作都是基于主分支進行。

  • git fetch origin
    從遠程倉庫 origin 拉取所有分支的最新信息,包括代碼提交、標簽等,但不會自動合并到任何本地分支
    換句話說,這一步相當于把遠程倉庫的最新狀態完整下載到本地,并更新遠程跟蹤分支(如 origin/mainorigin/feature-xxx 等),但不會直接修改你當前所在的本地分支。
    這使得你可以安全地查看遠程變化,決定后續如何合并,避免直接自動合并帶來的風險。

  • git merge origin/main
    將剛才 fetch 下來的遠程主分支 origin/main 的最新代碼,合并到當前的本地 main 分支,使你的本地代碼更新到遠程最新狀態。
    如果遠程和本地存在沖突,會在這里提示解決。

注意事項:但是這里要注意要提前git checkout main,如果沒有這一行只有第二第三行,那么假如原來是在本地的feature1分支,那么執行完2 3 行,相當于把遠程的main分支合并到本地的feature1里面了。

上面那三行和下面這兩行的區別

git checkout main
git pull

1. git pullgit fetch + git merge 的快捷命令

  • git pull 實際上相當于先執行 git fetch,把遠程倉庫最新內容拉下來,更新遠程追蹤分支(比如 origin/main

  • 然后自動執行一次 git merge origin/main,把遠程的更新合并到當前分支(這里是 main


2. 區別在于執行的步驟是否分開

  • git fetch + git merge 可以分兩步清晰控制:

    • 先用 git fetch origin 拉取所有遠程分支最新信息,但不修改當前分支

    • 然后再決定是否以及什么時候合并 origin/main 到本地 main

  • git pull 是一步完成拉取和合并,自動執行合并,不能中間檢查遠程變化


3. 什么時候用哪個更好?

  • 如果你想對遠程變化先有個全面了解,或想手動處理合并,避免自動合并導致沖突或意外,推薦先用

    bash

    復制編輯

    git fetch origin git merge origin/main

  • 如果你只是想快速同步本地分支到遠程最新狀態,且信任遠程內容,git pull 更方便快捷

5 真正開發不用Git命令,而是使用VSCode插件管理工程?

真正開發的時候不需要敲命令,直接用vscode里面的source control管理工程,進行pull,push,merge以及沖突解決等這些操作。但是前面介紹的這些命令要了解,還有整個流程要理解。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/84376.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/84376.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/84376.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

384_C++_unit是4字節大小,能存儲32位(bit)bool操作,[7][48]這里用于計劃表的時間節點內,二維數組中每一位代表一種AI功能的開關狀態

前置了解 uint 并不是 C/C++ 標準中的 原生類型,但不同平臺或框架可能有定義。通常: 1. uint 可能是 unsigned int 的別名 在某些代碼庫(如 Arduino、某些嵌入式系統、部分庫的頭文件)中,uint 可能被定義為:typedef unsigned int uint;此時,uint 的大小和 unsigned in…

css~word-break屬性

CSS中如何強制換行“....................................”&#xff1f; 當盒子寬度能放下“...”元素時&#xff0c;正常展示如下&#xff1a; 當盒子寬度不夠放“...”元素時&#xff0c;文本就會溢出&#xff0c;導致整個內容被截斷&#xff1a; 如何才能讓其正常展示而不…

【Algorithm】Union-Find簡單介紹

文章目錄 Union-Find1 基本概念1.1 Find(x) - 查詢操作1.2 Union(x, y) - 合并操作 2 并查集的結構和優化2.1 數據結構設計2.2 兩大優化策略&#xff08;關鍵&#xff09;2.2.1 路徑壓縮&#xff08;Path Compression&#xff09;2.2.2 按秩合并&#xff08;Union by Rank or S…

LeetCode 高頻 SQL 50 題(基礎版)之 【高級字符串函數 / 正則表達式 / 子句】· 上

題目&#xff1a;1667. 修復表中的名字 題解&#xff1a; select user_id, concat(upper(left(name,1)),lower(right(name,length(name)-1))) name from Users order by user_id題目&#xff1a;1527. 患某種疾病的患者 題解&#xff1a; select * from Patients where con…

Linux系統的CentOS7發行版安裝MySQL80

文章目錄 前言Linux命令行內的”應用商店”安裝CentOS的安裝軟件的yum命令安裝MySQL1. 配置yum倉庫2. 使用yum安裝MySQL3. 安裝完成后&#xff0c;啟動MySQL并配置開機自啟動4. 檢查MySQL的運行狀態 MySQL的配置1. 獲取MySQL的初始密碼2. 登錄MySQL數據庫系統3. 修改root密碼4.…

Java + Spring Boot項目枚舉(Enum)目錄建議

在Java Spring Boot項目中&#xff0c;枚舉&#xff08;Enum&#xff09;的定義文件沒有固定的強制目錄&#xff0c;但通常遵循項目結構和最佳實踐來組織代碼。以下是常見的推薦位置&#xff1a; 1. 領域模型相關枚舉 目錄: domain/enums 或 model/enums 場景: 當枚舉與業務模…

Vue 模板語句的數據來源

&#x1f9e9; Vue 模板語句的數據來源&#xff1a;全方位解析 Vue 模板&#xff08;<template> 部分&#xff09;中的表達式、指令綁定&#xff08;如 v-bind, v-on&#xff09;和插值&#xff08;{{ }}&#xff09;都在一個特定的作用域內求值。這個作用域由當前 組件…

全新AI驅動Workspace Security 套件發布!Fortinet 電子郵件安全產品矩陣升級

專注推動網絡與安全融合的全球性綜合網絡安全解決方案供應商 Fortinet&#xff08;NASDAQ&#xff1a;FTNT&#xff09;&#xff0c;近日宣布發布新一代企業級郵件安全解決方案FortiMail Workspace Security 安全套件&#xff0c;全面增強旗下數據和生產力安全產品組合&#xf…

二十、【用戶管理與權限 - 篇二】前端交互:實現用戶管理界面

【用戶管理與權限 - 篇二】前端交互:實現用戶管理界面 前言準備工作第一部分:更新并確認前端 API 服務第二部分:添加用戶管理頁面的路由和側邊欄入口第三部分:實現用戶列表頁面第四部分:實現用戶編輯對話框組件第五部分:全面測試總結前言 在上一篇《【用戶管理與權限 - …

LeetCode --- 452周賽

題目列表 3566. 等積子集的劃分方案 3567. 子矩陣的最小絕對差 3568. 清理教室的最少移動 3569. 分割數組后不同質數的最大數目 一、等積子集的劃分方案 由于本題的數據范圍不大&#xff0c;我們可以暴力枚舉所有可能的劃分方式&#xff0c;代碼如下 // C class Solution { …

使用Python提取照片元數據:方法與實戰指南

## 引言&#xff1a;元數據的重要性 照片元數據&#xff08;Metadata&#xff09;是嵌入在圖像文件中的隱藏信息&#xff0c;記錄了拍攝設備、時間、地理位置、光圈快門參數等關鍵數據。這些信息廣泛應用于**數字取證**、**照片管理**、**地理標記分析**和**版權驗證**等場景。…

使用docker在3臺服務器上搭建基于redis 6.x的一主兩從三臺均是哨兵模式

一、環境及版本說明 如果服務器已經安裝了docker,則忽略此步驟,如果沒有安裝,則可以按照一下方式安裝: 1. 在線安裝(有互聯網環境): 請看我這篇文章 傳送陣>> 點我查看 2. 離線安裝(內網環境):請看我這篇文章 傳送陣>> 點我查看 說明&#xff1a;假設每臺服務器已…

阿里云ACP云計算備考筆記 (5)——彈性伸縮

目錄 第一章 概述 第二章 彈性伸縮簡介 1、彈性伸縮 2、垂直伸縮 3、優勢 4、應用場景 ① 無規律的業務量波動 ② 有規律的業務量波動 ③ 無明顯業務量波動 ④ 混合型業務 ⑤ 消息通知 ⑥ 生命周期掛鉤 ⑦ 自定義方式 ⑧ 滾的升級 5、使用限制 第三章 主要定義 …

CANopen轉Modbus TCP轉換器助生產線智能化升級

在自動化工業控制領域&#xff0c;CANopen和Modbus TCP是兩種廣泛采用的通信協議。它們各自具有獨特的特點和優勢&#xff0c;但在某些應用場景中&#xff0c;需要設備能夠同時支持這兩種通信標準。這就需要一個能夠實現開疆智能CANopen轉Modbus TCP轉換的網關KJ-TCPC-CANP設備…

C++圖書管理

圖書館的書籍分類系統使用二進制標簽管理&#xff0c;0 代表兒童讀物&#xff0c;1 代表青少年書籍。管理員發現當前的書架排列中不允許出現青少年書籍之后連接兒童讀物的情況&#xff08;即 10 子串&#xff09;。管理員每次可以交換任意兩本書的位置。請計算讓書架符合規定所…

汽車免拆診斷案例 | 2010款捷豹XFL車制動警告燈、DSC警告燈異常點亮

故障現象  一輛2010款捷豹XFL車&#xff0c;搭載3.0 L發動機&#xff0c;累計行駛里程約為35萬km。車主反映&#xff0c;該車組合儀表上的制動警告燈、動態穩定控制系統&#xff08;DSC&#xff09;警告燈異常點亮&#xff08;圖1&#xff09;&#xff0c;且提示“DSC NOT AV…

el-upload組件,上傳文件失敗,:on-error方法失效

el-upload組件方法失效 問題原因解決 問題 使用el-upload組件上傳文件&#xff0c;有這么一個問題上傳文件處理報錯Excel、Word。org.apache.poi.openxml4j.exceptions.OLE2NotOfficeXmlFileException。 按上述&#xff0c;后端編寫完代碼&#xff0c;輸出正常&#xff0c;但…

可視化圖解算法50:最小的K個數

牛客網 面試筆試 TOP101 | LeetCode 面試題 17.14. 最小K個數 1. 題目 描述 給定一個長度為 n 的可能有重復值的數組&#xff0c;找出其中不去重的最小的 k 個數。例如數組元素是4,5,1,6,2,7,3,8這8個數字&#xff0c;則最小的4個數字是1,2,3,4(任意順序皆可)。 數…

Ragflow配置注意項

在 .env文件中啟用v.0.19.0版本&#xff0c;帶emabedding models RAGFLOW_IMAGEinfiniflow/ragflow:v0.19.0 RAGFlow image tagImage size (GB)Has embedding models?Stable?v0.19.0≈9??Stable releasev0.19.0-slim≈2?Stable releasenightly≈9??Unstable nightly b…

Word VBA快速制作填空題

實例需求&#xff1a;Word文檔用于英語單詞學習&#xff0c;重點記憶單詞標記下劃線&#xff0c;其內容如下圖所示。 現在文檔轉換為填空題&#xff08;無論單詞字符多少&#xff0c;填空部分統一使用10個空格&#xff09;和參考答案兩部分&#xff0c;如下圖所示。 示例代碼如…