六個倉庫合并為一個倉庫,保留master和develop分支的bat腳本

利用git subtree可以實現多個倉庫合并為一個倉庫,手動操作起來太麻煩了,今天花了點時間寫了一個可執行的腳本,現在操作起來就方便多了。

1、本地新建setup.bat文件

2、用編輯器打開(我用的是Notepad++)

3、把下面代碼復制進去

下面是六個代碼倉庫(在遠程倉庫,需要拉取)拉取合并為一個倉庫的腳本,根據實際情況修改合并后目錄、倉庫地址等

@echo off
setlocal enabledelayedexpansion:: 1. 強制清理舊目錄
:: project-dir是合并后目錄
set projectdir=project-dir
rd /s /q %projectdir% 2>nul
mkdir %projectdir%
cd %projectdir%:: 2. 初始化倉庫并創建 master 分支
git init
git commit --allow-empty -m "Initial empty commit (master)":: 3. 添加子項目遠程倉庫
:: 目錄和倉庫地址都是虛假替代的
git remote add dir1 https://gitee.com/3539949703/dir1.git
git remote add dir2 https://gitee.com/3539949703/dir2.git
git remote add dir3 https://gitee.com/3539949703/dir3.git
git remote add dir4 https://gitee.com/3539949703/dir4.git
git remote add dir5 https://gitee.com/3539949703/dir5.git
git remote add dir6 https://gitee.com/3539949703/dir6.git:: 4. 定義子項目列表
set "subprojects=dir1 dir2 dir3 dir4 dir5 dir6":: 5. 在 master 分支添加子項目的 master 分支
for %%i in (%subprojects%) do (git subtree add --prefix=%%i %%i master --squash
):: 6. 創建 develop 分支
git checkout --orphan develop
git reset --hard
:: 確保 develop 分支有初始提交
git commit --allow-empty -m "Initial empty commit (develop)":: 7. 添加子項目的 develop 分支
for %%i in (%subprojects%) do (git subtree add --prefix=%%i %%i develop --squash
)endlocalpause

4、打開Git Bash客戶端,執行./setup.bat,就完成合并為一個倉庫的任務。


5、查看了下提交的代碼,做了兩次commit提交,感覺git commit --allow-empty -m "Initial empty commit (master)"git commit --allow-empty -m "Initial empty commit (develop)"這兩次提交沒有必要,所以更新了下合并腳本,如下:

@echo off
setlocal enabledelayedexpansionset projectdir=maven-project
cd %projectdir%set "subprojects=dir1 dir2 dir3 dir4 dir5 dir6":: 更新 master 分支
git checkout master
for %%i in (%subprojects%) do (:: 強制重置子項目目錄git checkout HEAD -- %%i:: 強制拉取遠程代碼(丟棄本地修改)git subtree pull --prefix=%%i %%i master --squash --force
):: 更新 develop 分支
git checkout develop
for %%i in (%subprojects%) do (:: 強制重置子項目目錄git checkout HEAD -- %%i:: 強制拉取遠程代碼(丟棄本地修改)git subtree pull --prefix=%%i %%i develop --squash --force
)endlocalpause

6、合并后,同事又繼續提交代碼到舊倉庫,所以就又寫了一個更新代碼的腳本,命名為update.bat,源碼放在下面,執行步驟跟setup.bat一樣,不贅述了。

@echo off
setlocal enabledelayedexpansionset projectdir=ewp-cloud
cd %projectdir%set "subprojects=dir1 dir2 dir3 dir4 dir5 dir6":: 更新 master 分支
git checkout master
for %%i in (%subprojects%) do (:: 強制重置子項目目錄(丟棄本地修改)git checkout HEAD -- %%i:: 拉取遠程代碼(去掉 --force)git subtree pull --prefix=%%i %%i master --squash
):: 更新 develop 分支
git checkout develop
for %%i in (%subprojects%) do (:: 強制重置子項目目錄(丟棄本地修改)git checkout HEAD -- %%i:: 拉取遠程代碼(去掉 --force)git subtree pull --prefix=%%i %%i develop --squash
)endlocalpause

在這里插入圖片描述

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

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

相關文章

使用定時器監視當前PID 如果當前程序關閉 UI_Core.exe 也隨之自動關閉實現方法

使用定時器監視當前PID 如果當前程序關閉 UI_Core.exe 也隨之自動關閉實現方法 描述: C20 QT6.9 VS2022 中使用QProcess::startDetached(“UI_Core.exe”, QStringList(), QString(), &UI_Manage_pid);是啟動目標程序 能否同時告訴目標程序當前宿主程序的PID,在UI_CORE.EX…

神經網絡是如何工作的

人工智能最核心的技術之一,就是神經網絡(Neural Networks)。但很多初學者會覺得它是個黑盒:為什么神經網絡能識別圖片、翻譯語言,甚至生成文章? 本文用圖解最小代碼實現的方式,帶你深入理解&am…

LeetCode熱題100 兩數之和

目錄 兩數之和題目解析方法一暴力求解代碼 方法二哈希代碼 感謝各位大佬對我的支持,如果我的文章對你有用,歡迎點擊以下鏈接 🐒🐒🐒 個人主頁 🥸🥸🥸 C語言 🐿?🐿?🐿…

在線服務器具體是指什么?

在線服務器主要是指一種能夠隨時進行網絡連接、管理和操作的服務器,在線服務器是通過互聯網或者是本地網絡,來為企業和用戶提供數據存儲和網絡服務的,在線服務器也可以是物理服務器或者是虛擬服務器,能夠根據遠程訪問工具進行管理…

OSPF綜合性實驗

實驗拓撲: 第一步:進行子網劃分 172.16.0.0/17 172.16.0000 00 00.00000000 -- area1 172.16.0.1/22 -- AR1--G0/0/0 172.16.0.2/22 -- AR2--G0/0/0 172.16.0.3/22 -- AR3--G0/0/0 172.16.4.1/22 -- AR1-- Lo0 172.16.8.2/22 -- AR2-- Lo0 172.16.12.3/…

WEB前端表單及表格標簽綜合案例

表單標簽綜合案例&#xff1a; 源代碼&#xff1a; <!DOCTYPE html> <html lang"zh"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>…

實戰項目3(04)

??????目錄 ??????任務場景一 【r1配置】 【sw1配置】 任務場景二 【r1配置】 【sw1配置】 【sw2配置】 任務場景一 某公司網絡為了減少廣播包對網絡的影響&#xff0c;網絡管理員對網絡進行了VLAN劃分&#xff0c;完成VLAN劃分后&#xff0c;為了不影響VL…

tinyint(3)數據類型講解

TINYINT(3) 是數據庫中用于定義字段數據類型的一種寫法&#xff0c;常見于 MySQL 等數據庫系統。下面來詳細了解其含義和作用&#xff1a; 數據類型本質 TINYINT 屬于整數類型&#xff0c;在不同的數據庫系統中&#xff0c;它所占用的存儲空間和表示范圍通常是固定的。以 MyS…

[原創](現代Delphi 12指南):[macOS 64bit App開發]: 如何獲取自身程序的所在的目錄?

[作者] 常用網名: 豬頭三 出生日期: 1981.XX.XX 企鵝交流: 643439947 個人網站: 80x86匯編小站 編程生涯: 2001年~至今[共24年] 職業生涯: 22年 開發語言: C/C++、80x86ASM、Object Pascal、Objective-C、C#、R、Python、PHP、Perl、 開發工具: Visual Studio、Delphi、XCode、…

自定義prometheus exporter實現監控阿里云RDS

# 自定義 Prometheus Exporter 實現多 RDS 數據采集## 背景1. Prometheus 官網提供的 MySQL Exporter 對于 MySQL 實例只能一個進程監控一個實例&#xff0c;數據庫實例很多的情況下&#xff0c;不方便管理。 2. 內部有定制化監控需求&#xff0c;RDS 默認無法實現&#xff0c;…

開放原子大賽石油軟件賽道參賽經驗分享

億級以上網格油藏模型三維可視化 一、賽項背景 油藏數值模擬是油氣田開發中至關重要的一環。油藏數值模擬將儲層與井的數學模型離散求解&#xff0c;預測地下流體、能量等的動態變化&#xff0c;廣泛應用于油田產量評估、開發方案優化等。隨著計算機技術特別是并行技術的發展…

學習方法討論——正論科舉精神的內核

世界不存在絕對的善&#xff0c;可以很善&#xff0c;但很難找到絕對的善&#xff0c;總帶些副作用&#xff1b;世界上也不存在絕對的惡&#xff0c;可以很惡&#xff0c;但很難找到絕對的惡&#xff0c;可以嘗試舉例&#xff1b; 再者&#xff0c;物極必反&#xff0c;當對一個…

網絡不再神秘:如何有效利用服務器網絡流量探針進行監控?

目錄 一、流量探針到底是個啥&#xff1f; 二、別只是“部署了”&#xff0c;關鍵在“用得好” 1. 做到“最小粒度”數據采集 2. 結合時間窗口&#xff0c;構建行為基線 3. 利用標簽化管理&#xff0c;提升可讀性 4. 把探針輸出對接安全告警系統 三、那如何部署才合理&a…

uniapp(微信小程序)>關于父子組件的樣式傳遞問題(自定義組件樣式穿透)

在父組件中給子組件添加類名,子組件的樣式由父組件決定 由于"微信小程序"存在【樣式隔離機制】&#xff0c;且默認設置為isolated(啟用樣式隔離)&#xff0c;因此這里給出以下兩種解決方案&#xff1a; // 小程序編譯機制 1. 當 <style scoped> 存在時&#…

基于FastAPI框架的日志模塊設計

以下是一個基于FastAPI框架設計的日志模塊&#xff0c;結合SQLite數據庫實現增刪改查功能的完整實現方案&#xff1a; 1. 項目結構 your_project/ ├── app/ │ ├── logs/ # 日志模塊目錄 │ │ ├── models.py # 數據庫模型定義 │ │ …

面試題:C++虛函數可以是內聯函數嗎?

目錄 1.引言 2.示例 3.總結 1.引言 為什么C的虛函數和內聯函數這兩個看似矛盾的特性能否共存&#xff1f;這個問題實際上觸及了C編譯期優化與運行時多態性之間的微妙平衡。我發現這個問題不僅是面試中的常見陷阱&#xff0c;更是理解C深層機制很好的一個點。 虛函數可以被聲…

用python清除PDF文件中的水印(Adobe Acrobat 無法刪除)

學校老師發的資料&#xff0c;有時候會帶水印&#xff0c;有點強迫癥的都想給它去掉。用Adobe Acrobat試了下&#xff0c;檢測不到水印&#xff0c;無法刪除&#xff01;分析發現原來這類PDF文件是用word編輯的&#xff0c;其中的水印是加在了頁眉中&#xff01; 自己動手想辦法…

Oracle中自定義異常內置異常嵌套異常的捕獲處理

一、異常類型分類 類型說明示例內置預定義異常Oracle已命名異常&#xff08;如NO_DATA_FOUND&#xff09;查詢無數據時觸發內置非預定義異常未命名的Oracle錯誤&#xff08;需用PRAGMA EXCEPTION_INIT關聯&#xff09;ORA-02290&#xff08;違反檢查約束&#xff09;自定義異常…

《Flutter社交應用暗黑奧秘:模式適配與色彩的藝術》

暗黑模式已從一種新奇的功能演變為用戶體驗中不可或缺的一環。對于Flutter開發者而言&#xff0c;如何在社交應用中完美實現暗黑模式適配與色彩對比度優化&#xff0c;是一場充滿挑戰與驚喜的技術探索之旅。 暗黑模式&#xff0c;絕非僅僅是將界面顏色反轉這么簡單。從用戶體驗…

【kubernetes】通過Sealos 命令行工具一鍵部署k8s集群

一、前言 1、sealos安裝k8s集群官網&#xff1a;K8s > Quick-start > Deploy-kubernetes | Sealos Docs 2、本文安裝的k8s版本為v1.28.9 3、以下是一些基本的安裝要求&#xff1a; 每個集群節點應該有不同的主機名。主機名不要帶下劃線。所有節點的時間需要同步。需要…