Git 分支管理:從新開發分支遷移為主分支的完整指南

問題背景

我在使用 Git 進行開發時,由于原有的主分支遭到了污染,不得已在多方嘗試之后,決定替換原有的主分支。創建一個新分支并完成了重要修改:

  1. 基于提交 0fcb6df0f5e8caa3d853bb1f43f23cfe6d269b18 創建了 new-development 分支
  2. 在該分支上提交了重要的修改內容(提交ID b82fd7b9c9c85bd4e063eb096a9d7b92e9a79b76
  3. 需要將 new-development 分支設為主分支,并將原 master 分支作為存檔分支

在操作過程中,筆者遇到了遠程倉庫配置問題:本地倉庫沒有配置 origin 遠程,而是配置了多個其他別名的遠程倉庫,特別是中文別名的 我的測試項目二期 遠程倉庫。

完整解決方案

第一步:確認當前倉庫狀態

首先查看本地分支情況:

git branch -v

輸出應包含:

  master                [原主分支]
* new-development       b82fd7b9 [您的新提交]old-master            [已重命名的舊分支]

第二步:重命名分支(本地操作)

  1. 重命名原主分支為存檔分支:
git branch -m master old-master
  1. 切換到新開發分支:
git checkout new-development
  1. 將此分支設為主分支:
git branch -m master

第三步:解決遠程倉庫配置問題

通過命令分析遠程配置:

git remote -v

輸出顯示存在多個遠程別名:

old-origin      https://github.com/Alex-zry-2333/DiMian.git
zrygit          https://github.com/Alex-zry-2333/DiMian.git
我的測試項目二期 http://10.10.1.60/Alex_zry_2333/DiMianErQi.git

由于您指定要將更改推送到 我的測試項目二期,我們將以此為目標:

第四步:推送到目標遠程倉庫

  1. 強制推送新主分支:
# 注意使用引號包裹包含空格的遠程名稱
git push -f "我的測試項目二期" master
  1. 推送存檔分支:
git push "我的測試項目二期" old-master

第五步:清理其他遠程引用(可選)

  1. 刪除其他倉庫的原主分支:
# 清理GitHub遠程
git push old-origin --delete master
git push zrygit --delete master
  1. 清理無效遠程別名:
git remote remove old-origin
git remote remove zrygit

第六步:驗證配置

  1. 確認最終遠程配置:
git remote -v

輸出應為:

我的測試項目二期 http://10.10.1.60/Alex_zry_2333/DiMianErQi.git (fetch)
我的測試項目二期 http://10.10.1.60/Alex_zry_2333/DiMianErQi.git (push)
  1. 檢查遠程分支狀態:
git ls-remote "我的測試項目二期"

應顯示:

[b82fd7b9c...] refs/heads/master    # 您的新主分支
[原提交哈希]   refs/heads/old-master # 存檔分支

最佳實踐:創建簡化別名

為避免中文和空格帶來的操作不便,推薦創建英文別名:

# 添加簡化別名
git remote add dimian http://10.10.1.60/Alex_zry_2333/DiMianErQi.git# 后續操作使用簡化的別名
git push -f dimian master
git push dimian old-master

團隊協作處理指南

如果多人使用此倉庫,請通知團隊成員執行:

# 第一步:更新遠程引用
git fetch --all --prune# 第二步:重置本地主分支
git checkout master
git reset --hard dimian/master # 或對應遠程名# 第三步:清理舊分支
git branch -d old-master      # 刪除本地舊分支

技術總結

  1. ?分支重命名原理?:

    • git branch -m 只是修改分支指針名稱
    • 不會改變歷史提交
    • 保留完整的提交樹結構
  2. ?強制推送注意事項?:

    graph LR
    A[本地master] -- 強制推送 --> B[遠程master]
    C[團隊副本] -- 需要重置 --> B
    
    • 僅在完全控制分支時使用 -f
    • 提前協調團隊更新本地副本
  3. ?遠程倉庫配置方案?:

    方案適用場景操作示例
    標準origin單倉庫項目git push origin master
    多別名配置多倉庫同步git push 別名A; git push 別名B
    自定義別名復雜命名git remote add 簡寫名 URL

后續維護建議

  1. ?分支保護策略?:

    • 在倉庫設置中保護 master 分支
    • 要求 Pull Request 審核才能合并
    • 禁止直接推送主分支
  2. ?定期清理機制?:

    # 每月清理過期分支
    git branch -r | grep -Ev 'master|main' | xargs -I {} git push origin --delete {}# 歸檔一年前的舊分支
    git tag archive/branches/old-master-2025 old-master
    git push origin --tags
    
  3. ?分支命名規范建議?:

    • master/main: 主分支
    • dev: 開發集成分支
    • feature/*: 功能分支
    • hotfix/*: 緊急修復分支
    • archive/*: 已歸檔分支

https://github.com/0voice

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

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

相關文章

nginx常見問題(四):端口無權限

當 Nginx 日志報錯 bind() to 80 failed (13: Permission denied) 時,這通常是由于權限不足導致 Nginx 無法綁定到 80 端口(該端口為系統特權端口)。以下是詳細的問題分析與解決方案:一、問題原因分析80 端口屬于 系統特權端口&am…

【線性代數】線性方程組與矩陣——(3)線性方程組解的結構

上一節:【線性代數】線性方程組與矩陣——(2)矩陣與線性方程組的解 總目錄:【線性代數】目錄 文章目錄9. 向量組的線性相關性與線性方程組解的結構9.1. 向量組及其線性組合9.2. 向量組的線性相關性9.3. 向量組的秩9.4. 線性方程組…

機器學習-----K-means算法介紹

一、為什么需要 K-Means?在監督學習中,我們總把數據寫成 (x, y),讓模型學習 x → y 的映射。 但現實中很多數據根本沒有標簽 y,例如:啤酒:熱量、鈉含量、酒精度、價格用戶:訪問時長、點擊次數、…

Spring Security自動處理/login請求,后端控制層沒有 @PostMapping(“/login“) 這樣的 Controller 方法

一:前言 (1)Spring Security概念: Spring Security 是屬于 Spring 生態下一個功能強大且高度可定制的認證和授權框架,它不僅限于 Web 應用程序的安全性,也可以用于保護任何類型的應用程序。 &#xff08…

idea開發工具中git如何忽略編譯文件build、gradle的文件?

idea開發工具中: git顯示下面這個文件有變更: ~/Documents/wwwroot-dev/wlxl-backend/java/hyh-apis/hyh-apis-springboot/build/resources/main/mapping/AccountRealnameMapper.xml 我git的根路徑是: ~/Documents/wwwroot-dev/wlxl-backend/…

狀態機淺析

狀態機是處理狀態依賴型行為的高效工具,通過結構化建模狀態轉換,解決了傳統條件判斷的冗余和混亂問題。它在設備控制、流程管理、協議解析等場景中表現優異,核心優勢在于邏輯清晰、可擴展性強和易于調試。 一、介紹 1. 概念 狀態機&#x…

Windows 手動病毒排查指南:不依賴殺毒軟件的系統安全防護

Windows 手動病毒排查指南:不依賴殺毒軟件的系統安全防護 在數字時代,電腦病毒就像潛伏的"網絡幽靈",從竊取隱私的木馬到消耗資源的蠕蟲,時刻威脅著系統安全。當殺毒軟件失效或遭遇新型威脅時,手動排查病毒便…

GPT-5 is here

GPT-5 is here https://openai.com/index/introducing-gpt-5/ — and it’s #1 across the board! #1 in Text, WebDev, and Vision Arena #1 in Hard Prompts, Coding, Math, Creativity, Long Queries, and more Tested under the codename “summit”, GPT-5 now holds the …

【華為機試】55. 跳躍游戲

文章目錄55. 跳躍游戲題目描述示例 1:示例 2:提示:解題思路一、問題本質與建模二、方法總覽與選擇三、貪心算法的正確性(直觀解釋 循環不變式)四、反向貪心:等價但有啟發的視角五、與動態規劃的對比與誤區…

RabbitMQ面試精講 Day 18:內存與磁盤優化配置

【RabbitMQ面試精講 Day 18】內存與磁盤優化配置 開篇:內存與磁盤優化的重要性 歡迎來到"RabbitMQ面試精講"系列的第18天!今天我們將深入探討RabbitMQ的內存與磁盤優化配置,這是面試中經常被問及的高頻主題,也是生產環…

【C++】string 的特性和使用

Ciallo&#xff5e; (∠?ω< )⌒★ string&#xff08;1&#xff09;1. 構造函數1.1 string();1.2 string(const char* s);1.3 string(const string& str);1.4 string(size_t n, char c);1.5 string(const string& str, size_t pos, size_t len npos);1.6 string(…

創始人IP的精神修煉:于成長中積蓄力量

IP 經濟席卷之下&#xff0c;眾多企業家常被 “是否入局 IP”“能否做好 IP” 的焦慮裹挾。這種潛藏的精神內耗&#xff0c;對企業根基的侵蝕往往勝過業績的起伏。著名文化學者于丹在全球創始人 IP 領袖高峰論壇上的洞見&#xff0c;為創始人 IP 的精神成長照亮了前路&#xff…

gbase8s數據庫中對象元數據查詢

最近整理了gbase8s數據庫中常見的元數據的查詢&#xff0c;包括表、視圖、序列、包、類型、觸發器、plsql等等&#xff0c;僅供參考。set environment sqlmode oracle; drop package DBMS_METADATA; create or replace package DBMS_METADATA is function GET_DDL(objtype varc…

常用hook鉤子函數

爬蟲Hook技術常用字段和勾子函數 目錄 Hook技術概述網絡請求相關Hook瀏覽器環境HookJavaScript引擎Hook加密算法Hook反爬蟲檢測Hook實際應用示例Hook工具和框架 Hook技術概述 Hook&#xff08;鉤子&#xff09;技術是一種在程序運行時攔截和修改函數調用的技術。在爬蟲中&a…

【解決方法】華為電腦的亮度調節失靈

華為電腦的亮度調節失靈 參考文章&#xff1a; 華為電腦屏幕亮度怎么調不了&#xff1f;華為電腦調節亮度沒反應解決教程 親測&#xff0c;在控制面板中卸載HWOSD&#xff0c;再重裝有用。

【軟考中級網絡工程師】知識點之 DCC 深度剖析

目錄一、DCC 是什么1.1 定義闡述1.2 作用講解二、DCC 工作原理2.1 撥號觸發機制2.1.1 感興趣流量定義2.1.2 觸發撥號過程2.2 鏈路建立流程2.2.1 物理鏈路連接2.2.2 數據鏈路層協議協商三、DCC 配置要點3.1 基礎配置步驟3.1.1 接口配置3.1.2 撥號映射配置3.2 高級配置參數3.2.1 …

W5500之Socket寄存器區介紹

W5500之Socket寄存器區介紹1)、Socket n模式寄存器(Socket n Mode Register&#xff0c;簡寫Sn_MR)偏移地址為0x0000&#xff0c;可讀寫&#xff0c;復位值為0x00&#xff1b;Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0MULTI/MFENBCASTBND/MC/MMBUCASTB/MIP6BP3P2P1P0MULTI/MFEN占用“S…

酉矩陣(Unitary Matrix)和隨機矩陣

先討論酉矩陣&#xff08;Unitary Matrix&#xff09;的性質。1. 酉矩陣定義酉矩陣&#xff08;Unitary Matrix&#xff09;是復數域上的方陣&#xff0c;滿足以下條件&#xff1a;其中&#xff1a;是 的共軛轉置&#xff08;即 Hermitian 轉置&#xff0c; &#xff09;。是單…

「iOS」————單例與代理

iOS學習單例代理代理模式的原理代理的循環引用設計模式單例 優點&#xff1a; 全局訪問&#xff1a;單例模式確保一個類只有一個實例&#xff0c;并提供全局訪問點&#xff0c;方便在整個應用中共享數據或功能。節省資源&#xff1a;由于只創建一個實例&#xff0c;可以減少內…

Microsoft Dynamics AX 性能優化解決方案

一、方案背景Microsoft Dynamics AX 是功能強大的企業ERP系統&#xff0c;雖然Microsoft 已推出基于云的現代化 ERP 平臺 Dynamics 365 Finance and Operations&#xff0c;提供了更高的性能和持續更新&#xff0c;用來替代Dynamics AX。在考慮升級到Dynamics 365之前&#xff…