GitLab 倉庫 — 常用的 git 命令

在公司的 gitlab 公共倉庫中寫代碼做項目時,主要涉及以下常用 git 命令:

一、單個命令講解

1. 拉取代碼

(1)git clone [倉庫 URL]?

  • 克隆遠程倉庫到本地(需確保 URL 正確) ?

(?2)git pull [遠程倉庫名] [分支名]?

  • 從遠程倉庫拉取最新代碼(默認拉取 origin 倉庫的 master?分支)

(3)git fetch [遠程倉庫名] [分支名]?

  • 僅下載遠程分支更新,不自動合并

2. 分支操作

(?1)git checkout [分支名]?

  • 切換到指定分支(如 master、develop 等)

  • 加選項“-b”即創建并切換到該分支

(?2)git switch [分支名]?

  • 切換分支(僅 Git 2.23+ 版本支持)

(?3)git branch [新分支名]?

  • 創建并切換到新分支(如 feature-branch)

(4)git merge [分支名]

  • 將指定分支的代碼合并到當前分支

3. 代碼管理

(1)git init

  • 初始化一個新的 git 倉庫

  • 進入到目標文件夾,運行該命令在當前文件夾下創建一個 .git 文件夾,作為 git 的倉庫

(2)git pull

  • 更新本地倉庫,將遠程倉庫的改動拉取到本地

  • 運行該命令命令更新本地倉庫,并將遠程倉庫的改動拉取到本地

(?3)git status?

  • 查看本地倉庫狀態(是否需要提交、是否存在沖突等)

  • 運行該命令可以查看項目下存在改動的所有文件

(4)git diff [文件名]

  • 查看指定文件的詳細的修改內容

(?5)git add [文件名/目錄]?

  • 將文件添加到暫存區

  • 建議每次檢查完某個文件單獨執行 add,避免只用“add .”批量執行操作

(?6)git commit -m "描述信息"?

  • 提交暫存區的代碼(需配合 add 命令一起使用)

  • “描述信息”:提煉出本次提交的關鍵信息即可

(7)git push -u origin [分支名]

  • 將本地倉庫的改動推送到遠程倉庫

  • 建議推送到自己的分支上,避免影響公共倉庫

  • -u 選項:建立本地分支與遠程分支的跟蹤關系

(8)git log

  • 查看提交歷史記錄

4. 沖突處理

(?1)git rebase?

  • 將本地提交重新排列到遠程分支最新提交之上(保持線性歷史)

(2)git merge [遠程分支]?

  • 合并遠程分支到當前分支(保留合并記錄)

5. 團隊協作

(1)git fetch?

  • 更新本地跟蹤的遠程分支信息(不自動合并)

(?2)git log --graph?

  • 查看分支合并歷史(輔助團隊協作排查問題)

6. 注意事項

  • 確保使用公司網絡環境可訪問倉庫

  • 避免在公共分支執行 rebase 操作(可能破壞他人提交歷史)

  • 定期使用 git fetch 更新遠程跟蹤分支信息

二、常用演示示例

  • “張三”在某公司的公共代碼倉庫中進行項目的開發,該倉庫的主分支(主干)假設為“master”:

# 若是第一次開發,則需從倉庫中克隆代碼到本地
git clone git@git.abcd.ef:gh/test.git
# git@git.abcd.ef:gh/test.git 為倉庫的 URL# 倉庫為公共倉庫,故需要創建自己的開發分支,不可在主分支 master 進行開發
git checkout -b zhangsan
# 把自己本地的分支推送到遠程倉庫
git push origin zhangsan# 查看當前倉庫的所有分支(本地的)
git branch
# 切換到其他的分支,假設本地有另一個分支 zhangsan01
git checkout zhangsan01# 若非第一次開發,即之前已經將代碼克隆到本地了,需要在開發前拉取倉庫的最新代碼,方可進行開發(因為公共倉庫存在已經有人提交過最新代碼的可能性)
git pull
git pull origin master
# 以上兩個命令看情況使用,判斷有無跟蹤關系# 完成代碼開發后,提交之前進行檢查
git status
git diff [文件名]# 檢查無誤后,再進行暫存(建議文件需要逐個檢查,逐個暫存,不建議批量)
git add [文件名]# 完成所有修改文件的暫存后,方可進行提交
git commit -m [zhangsan coding]# 最后推送到遠程的自己的分支
git push -u origin zhangsan
# 最后再 gitlab 上檢查完后,發送 merge 請求(若無權限審批該請求,找有權限的人即可)
  • 上述經歷根據個人經歷而言,僅供參考

三、補充 - rebase 情況

  • 首先要注意使用 rebase 的場景:未共享給他人的個人分支

  • 在為期較長時間的代碼開發過程,每天開發前使用一遍 rebase 可讓合并簡單化

  • 建議:在最后合并 CI 之前,再進行一遍 rebase

1. 個人分支

  • 目的:保持分支 zhangsan 與主分支 master 同步,避免最終合并時沖突

# 每天開始工作前:
git checkout master
git pull origin master          # 拉取最新代碼
git checkout zhangsan
git rebase master               # 將本地提交“移動”到最新 master 上

2. 整理提交歷史

  • 如果?zhangsan?分支上有大量瑣碎提交(如“fix typo”等),可以通過交互式 rebase 整理

# 合并/編輯提交
git rebase -i master

?

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

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

相關文章

【28】C# WinForm入門到精通 ——多文檔窗體MDI【屬性、方法、實例、源碼】【多窗口重疊、水平平鋪、垂直平鋪、窗體傳值】

文章目錄1多文檔窗體MDI2 基本設置3 實例:多窗口重疊、水平平鋪、垂直平鋪3.1 主窗口屬性設置3.2 主窗口3.3 主窗口窗口添加MenuStrip菜單3.4 添加處理函數3.5 測試效果4 利用窗體參數定義進行傳值4.1 在Form2、Form3添加相關控件4.2 Form3 定義函數public Form3(st…

【計算機科學與應用】基于Session欺騙攻擊的Web應用程序防護

導讀: 本文對Web應用程序開發中的Session欺騙攻擊進行了闡述,詳細講解了防范Session欺騙攻擊的三種傳統方法,并給出了防范代碼,分析了三種傳統防范方法的不足,新設計了一種通過Referer信息驗證來加強對Session欺騙的防…

yolo8+阿里千問圖片理解(華為簡易版小藝看世界)

? 實現目標 按下空格鍵 → 獲取攝像頭當前畫面; 將圖片上傳給 大模型 接口,讓其“看圖說話”; 獲取返回描述后,以字幕形式展示在圖像畫面上; 持續顯示識別結果,直到下次按空格。 🧠 需要準…

【ee類保研面試】數學類---線性代數

25保研er,希望將自己的面試復習分享出來,供大家參考 part0—英語類 part1—通信類 part2—信號類 part3—高數類 part100—self項目準備 文章目錄線性代數知識點大全**1. 余子式與代數余子式****2. 行列式的含義****3. 矩陣的秩(Rank&#xf…

在 Scintilla 中為 Squirrel 語言設置語法解析器的方法

Scintilla 作為一個強大的開源文本編輯控件,通過配置語法解析器,能夠對多種編程語言實現語法高亮、代碼折疊等實用功能。若要為新語言 Squirrel 設置語法解析器,可參考以下步驟:?創建 Lexer 源文件:Scintilla 通過 Le…

Go語言核心知識點補充

Go語言核心知識點補充 make函數、for循環與輸入處理詳解 在前幾章的內容中,我們介紹了Go語言的基礎語法、變量聲明、切片、循環等核心概念。但在實際開發中,一些細節性的知識點往往決定了代碼的健壯性與效率。 本文將針對前幾章涉及到的變量聲明與初始化…

AI服務器中,EEPROM有哪些部件使用,需要存儲哪些信息?

在AI服務器中,EEPROM(電可擦可編程只讀存儲器)主要用于存儲關鍵組件的配置數據、身份信息和校準參數。以下是主要組件及其存儲內容: 一、核心組件及存儲數據主板(Baseboard Management Controller, BMC) FR…

It學習資源下載

一.UI 8個高質量UI設計網站,靈感收集必備!

Docker Compose :從入門到企業級部署

Docker Compose :從入門到企業級部署1. Docker Compose 核心概念1.1 Compose 架構全景圖2. 完整開發工作流2.1 典型開發流程2.2 多服務示例項目結構3. 核心配置詳解3.1 服務配置矩陣3.2 網絡拓撲示例4. 企業級部署方案4.1 多環境配置管理4.2 擴展部署架構5. 高級技巧…

1.2.vue插值表達式

在 Vue.js 中,插值表達式是用于在模板中顯示數據的一種方式。它使用雙大括號語法 {{ }} 來包裹需要輸出的變量或表達式的值。Vue 會自動將這些表達式的值插入到 HTML 文檔中相應的位置。插值表達式基本用法最基本的插值表達式形式就是直接在模板中引用 Vue 實例中的…

Python數據處理基礎(學習筆記分享)

Python數據處理入門 常用庫學習 numpy NumPy(Numerical Python) 是 Python 中用于高效數值計算的庫,核心是提供一個強大的 ndarray?(多維數組)對象,類似于 C/C 中的數組,但支持更豐富的操作&a…

力扣面試150題--顛倒二進制位

Day 89 題目描述思路 二進制的算法,將十進制轉化為二進制,有一點需要注意,直接采取庫函數轉化為二進制再反轉會出現問題(這也是為什么我要補0的原因),因為轉化過去不滿足32位的二進制,前面不會當…

【ResNet50圖像分類部署至RK3588】模型訓練→轉換RKNN→開發板部署

已在GitHub開源與本博客同步的ResNet50v2_RK3588_Classificationt項目,地址:https://github.com/A7bert777/ResNet50v2_RK3588_Classification 詳細使用教程,可參考README.md或參考本博客第八章 模型部署 文章目錄一、項目回顧二、模型選擇介…

C# _泛型

目錄 泛型是什么? 泛型的主要優勢 創建一個泛型類 泛型方法 泛型是什么? 泛型是通過參數化來實現同一份代碼上操作多種數據類型 利用參數類型將參數的類型抽象化 從而實現靈活的復用 總結: 通過泛型可以實現在同一份代碼上操作多種數據類型的邏輯 將類和類中的成員定義…

Vue路由鉤子完全指南

Vue.js中的路由導航鉤子(Navigation Guards)主要用于在路由導航過程中進行攔截和處理,確保訪問控制和狀態管理。以下是主要分類及使用方法: 1. 全局鉤子函數 作用于整個路由實例,需在路由配置外定義: befor…

RAGFlow 登錄界面點擊登錄無反應,控制臺報錯 502 Bad Gateway 解決方法

遇到的問題 在使用RAGFlow的時候,登錄不進去,但是之前能登錄。 還出現了輸入地址直接進入工作界面,但是進行不了任何操作的bug;以及無法上傳文檔的問題(其實都是因為沒登錄)。 登陸界面報錯如圖顯示。 …

數據結構第3問:什么是線性表?

線性表 線性表由具有相同數據類型的n個元素構成,這些元素之間存在一一對應的線性關系。其中n為表長,當n0的時候線性表是一個空表。簡單來說,線性表中的元素排列成一條線,每個元素最多有一個直接的前驅和后繼(除第一個和…

常見CMS 靶場復現

一、wordpass1.修改模版文件getshell搭建網站登錄網站后臺更改網站模版的相關文件寫入一句話木馬憑借路徑訪問/wp-content/themes/twentyfifteen/404.php/?aphpinfo();2.上傳夾帶木馬的主題getshell外觀-->主題-->添加-->上傳-->瀏覽-->安裝-->訪問木馬文件…

Elasticsearch - 倒排索引原理和簡易實現

倒排索引的功能設計倒排索引(Inverted Index)是一種高效的數據結構,常用于全文搜索和信息檢索系統。它的核心思想是將文檔中每個關鍵字(term)與包含該關鍵字的文檔列表進行映射。以下是實現倒排索引功能的設計步驟和代…

C#開發的Panel里控件拖放例子 - 開源研究系列文章

上次寫了Panel的分頁滾動控件( C#開發的Panel滾動分頁控件(滑動版) - 開源研究系列文章 - Lzhdims Fashion - 博客園 ),但是主要是想寫一個Panel里控件拖放的效果,然后分頁控件用于Panel里控件的分頁。此文這次寫的是控件拖放效果…