五、練習2:Git分支操作

練習2:Git分支操作

練習目標

掌握Git分支的創建、切換、合并等操作,理解分支在開發中的作用。

練習步驟

步驟1:準備基礎倉庫

# 創建練習目錄
mkdir branch-practice
cd branch-practice# 初始化倉庫
git init# 創建初始文件
echo "# 分支練習項目" > README.md
git add README.md
git commit -m "初始化項目"

步驟2:創建和切換分支

# 查看當前分支
git branch# 創建新分支
git branch feature-login# 切換到新分支
git checkout feature-login# 或者使用新命令創建并切換
git checkout -b feature-register

步驟3:在不同分支上開發

# 在feature-login分支上工作
git checkout feature-login# 創建登錄功能文件
echo "function login() { console.log('登錄功能'); }" > login.js
git add login.js
git commit -m "添加登錄功能"# 切換到feature-register分支
git checkout feature-register# 創建注冊功能文件
echo "function register() { console.log('注冊功能'); }" > register.js
git add register.js
git commit -m "添加注冊功能"

步驟4:查看分支歷史

# 查看所有分支
git branch -a# 查看分支圖
git log --graph --oneline --all# 查看特定分支的歷史
git log --oneline feature-login
git log --oneline feature-register

步驟5:合并分支

# 切換到主分支
git checkout main# 合并登錄功能分支
git merge feature-login# 查看合并后的狀態
git status
git log --oneline# 合并注冊功能分支
git merge feature-register

步驟6:解決合并沖突(模擬)

# 在兩個分支上修改同一個文件
git checkout feature-login
echo "// 登錄模塊" > app.js
git add app.js
git commit -m "添加登錄模塊"git checkout feature-register
echo "// 注冊模塊" > app.js
git add app.js
git commit -m "添加注冊模塊"# 嘗試合并(會產生沖突)
git checkout main
git merge feature-login
git merge feature-register  # 這里會有沖突

步驟7:解決沖突

# 查看沖突文件
cat app.js# 手動編輯app.js文件,解決沖突
# 刪除沖突標記,保留需要的內容
echo "// 登錄模塊
// 注冊模塊" > app.js# 添加解決后的文件
git add app.js
git commit -m "解決合并沖突"

步驟8:刪除分支

# 刪除已合并的分支
git branch -d feature-login
git branch -d feature-register# 查看剩余分支
git branch

練習檢查點

完成練習后,請檢查以下幾點:

  • 能夠創建新分支
  • 能夠在分支間切換
  • 能夠在不同分支上獨立開發
  • 能夠合并分支
  • 能夠解決合并沖突
  • 能夠刪除已合并的分支
  • 理解分支的作用和優勢

擴展練習

1. 分支命名規范練習

# 創建不同類型的分支
git checkout -b feature/user-profile
git checkout -b bugfix/login-error
git checkout -b hotfix/security-patch
git checkout -b release/v1.0.0

2. 分支保護練習

# 模擬保護分支(在實際項目中通過平臺設置)
git checkout main
echo "重要文件,不要直接修改" > important.txt
git add important.txt
git commit -m "添加重要文件"# 嘗試在main分支上直接修改
echo "直接修改" >> important.txt
git add important.txt
git commit -m "直接修改重要文件"

3. 遠程分支操作

# 推送分支到遠程(如果有遠程倉庫)
git push origin feature-login
git push origin feature-register# 查看遠程分支
git branch -r# 拉取遠程分支
git fetch origin
git checkout -b feature-remote origin/feature-remote

分支管理最佳實踐

1. 分支命名規范

  • feature/xxx:新功能分支
  • bugfix/xxx:bug修復分支
  • hotfix/xxx:緊急修復分支
  • release/xxx:發布分支

2. 工作流程

  1. 從主分支創建功能分支
  2. 在功能分支上開發
  3. 完成開發后合并回主分支
  4. 刪除功能分支

3. 合并策略

  • Fast-forward:適合簡單的線性歷史
  • Merge commit:保留分支歷史
  • Squash merge:將多個提交合并為一個

常見問題

Q: 什么時候應該創建新分支?
A: 當開始開發新功能、修復bug或準備發布時,都應該創建新分支。

Q: 如何選擇合并策略?
A: 根據項目需求選擇,簡單項目用fast-forward,復雜項目用merge commit。

Q: 合并沖突如何避免?
A: 經常同步主分支的更新,及時解決沖突,避免長期分支。

Q: 什么時候刪除分支?
A: 分支合并到主分支后,確認不再需要時就可以刪除。

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

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

相關文章

【筆記】算法設計:異或空間線性基

Content1.什么是異或(定義和性質)2.異或空間線性基的構造方法3.異或空間線性基的應用4.算法設計例舉5.小結說明算法設計應用之前,首先明確異或空間線性基:一種數據結構。用于處理異或關系(運算)下的向量空間…

Filebeat采集數據與日志分析實戰

🌟Filebeat采集數據的原理 Filebeat默認按行采集數據,如果數據沒有換行,則該條數據無法采集到 屬于有狀態服務,可以記錄上一次采集數據的位置點信息 修改配置文件 vim /etc/filebeat/config/03-log-to-console.yaml filebeat.inp…

Fluent Bit針對kafka心跳重連機制詳解(下)

#作者:程宏斌 文章目錄disconnectreconnect接上篇:https://blog.csdn.net/qq_40477248/article/details/150957571?spm1001.2014.3001.5501disconnect 斷開連接的情況主要是兩種: 連接或傳輸過程中有錯誤發生 超時, 比如空閑時間超時 ** * Close and …

React 第七十一節 Router中generatePath的使用詳解及注意事項

前言 generatePath 是 React Router 的一個實用工具函數,用于根據路徑模式和參數對象生成實際的 URL 路徑。它在需要動態構建鏈接的場景中非常有用,比如生成導航鏈接或重定向路徑。 1、基本用法和注意事項 import { generatePath } from react-router-do…

Python 爬蟲案例:爬取豆瓣電影 Top250 數據

一、案例背景與目標 豆瓣電影 Top250 是國內權威的電影評分榜單之一,包含電影名稱、評分、評價人數、導演、主演、上映年份、國家 / 地區、類型等關鍵信息。本案例將使用 Python 編寫爬蟲,實現以下目標: 自動請求豆瓣電影 Top250 的 10 個分…

SPA安全警示:OAuth2.0致命漏洞

OAuth2.0在SPA應用中的安全陷阱SPA(單頁應用)通常采用隱式授權(Implicit Flow)或PKCE(Proof Key for Code Exchange)授權模式,但存在以下安全隱患:隱式授權模式的漏洞訪問令牌直接暴…

table表格字段明細展示

文章目錄1、字段渲染2、異步請求展示明細3、hover展示問題3.1 基本邏輯3.2 hover時長判斷3.3 renderhover表格字段明細展示,屬于比較小的需求,但是也有一定交互細節,本文選取部分場景。 1、字段渲染 render和渲染組件是有區別的。render常見為…

主網上線后生態極速擴張的 Berachain 生態,有哪些值得關注的項目?

Berachain 是典型的將 DeFi 思維嵌入到共識機制中的 Layer1,其核心是 PoL(Proof of Liquidity)共識。PoL 要求驗證者在獲得區塊獎勵前,必須將流動性導入白名單協議,并由市場決定資金流向。這樣,驗證者的權重…

claude-code對比GitHub-Copilot

Claude Code 文檔日期:2025 年 08 月 20 日 定位 項目級開發助手,專注于全局視野和復雜任務的處理。 特點 超長上下文支持:支持 200k 超長上下文,適合處理復雜項目。豐富的自定義命令:提供靈活的命令配置,滿…

Roo Code自定義Mode(模式)

什么是自定義模式? 簡單來說,自定義模式就像是給Roo Code穿上不同的"職業裝"。你可以創建針對特定任務或工作流程量身定制的模式,讓Roo在不同場景下表現出專業的行為。 這些模式分為兩種類型:全局模式(在所有…

Next.js渲染模式:SSR、SSG與ISR揭秘

Next.js 核心渲染模式深度解析:SSR、SSG 與 ISR 在構建現代 Web 應用時,性能和用戶體驗是至關重要的考量。Next.js 作為 React 生態中一個備受推崇的框架,其強大的服務端渲染(SSR)、靜態站點生成(SSG&#…

Veo Videos Generation API 對接說明

本文介紹了如何對接 Veo Videos Generation API,通過輸入自定義參數生成Veo官方視頻。 下面將詳細闡述 Veo Videos Generation API 的對接流程。 申請流程 使用 API 前,需前往 Veo Videos Generation API 頁面申請服務。進入頁面后,點擊「…

YOLO 目標檢測:YOLOv3網絡結構、特征輸出、FPN、多尺度預測

文章目錄一、YOLOV31、網絡結構1.1 整體結構1.2 主干網絡1.3 特征輸出1.4 特征融合FPN(Feature Pyramid Networks)FPN 融合上采樣融合2、多尺度預測3、損失函數4、性能對比一、YOLOV3 YOLOv3(You Only Look Once v3)是YOLO系列中…

【GIS圖像處理】有哪些SOTA方法可以用于將1.5米分辨率遙感圖像超分辨率至0.8米精度的?

針對將1.5米分辨率遙感圖像超分辨率至0.8米的需求,當前主流方法可分為以下幾類,結合最新研究進展和實際應用場景,具體技術方案及SOTA方法如下: 一、基于Transformer的高效建模 1. Top-k標記選擇Transformer(TTST) 核心機制:通過動態選擇前k個關鍵標記(token),消除冗…

【電力電子】逆變器控制策略:PQ Droop下垂控制、電壓電流雙環控制與SPWM調制

逆變器中的 PQ Droop 控制。 1. PQ Droop 控制的定義 PQ Droop(有時也稱為功率下垂控制,Power Droop Control)是微電網、并聯系統或逆變器并網運行中常用的一種分布式功率控制方法。 P-Droop(有功下垂):通過調節逆變器輸出頻率與有功功率之間的關系實現功率分配。 Q-Dro…

【LeetCode 熱題 100】5. 最長回文子串——中心擴散法

Problem: 5. 最長回文子串 文章目錄整體思路完整代碼時空復雜度時間復雜度:O(N^2)空間復雜度:O(1)整體思路 這段代碼旨在解決經典的 “最長回文子串” (Longest Palindromic Substring) 問題。問題要求在一個給定的字符串 S 中,找到一個最長…

六、練習3:Gitee平臺操作

練習3:Gitee平臺操作 練習目標 掌握Gitee平臺的基本操作,包括創建倉庫、推送代碼、團隊協作等。 練習步驟 步驟1:Gitee賬號準備 訪問 gitee.com注冊賬號(如果還沒有)登錄Gitee 步驟2:配置SSH密鑰 # …

Git軟件版本控制

軟件版本控制作用:軟件源碼版本管理、多人協作開發、版本多分支開發、代碼回滾(回退)等功能。集中式版本控制:將代碼倉庫放在一臺服務器上,開發時要依賴這臺服務器。優點:簡單、方便管理、適合中小型項目缺…

生產環境Spark Structured Streaming實時數據處理應用實踐分享

生產環境Spark Structured Streaming實時數據處理應用實踐分享 一、業務場景描述 我們所在的電商平臺需要實時監控用戶行為數據(如點擊、下單、支付等),基于事件級別的流式數據進行實時統計、會話聚合、漏斗分析,并將結果推送到Da…

海康相機開發---HCNetSDK

HCNetSDK(Hikvision Network Software Development Kit)是海康威視專為旗下安防監控設備打造的二次開發工具包,是連接上層應用與海康設備的核心橋梁。其封裝了設備底層通信協議(包括私有協議與部分標準協議)&#xff0…