講講git 和svn

講講git 和svn

  • 目錄
    • Git到底是什么?它該怎末用?
      • 核心概念
      • 基礎操作
        • 1. 倉庫的創建
        • 2. 文件的提交工作流程
        • 3. 分支管理
        • 4. 遠程倉庫操作
      • 進階操作
      • 實際應用建議
      • **基本用法**
      • **常用命令的幫助示例**
      • **幫助文檔的結構**
      • **替代方法**
      • **練習建議**
      • **核心概念**
      • **與Git的主要區別**
      • **基本操作**
        • 1. **倉庫操作**
        • 2. **文件管理**
        • 3. **提交與更新**
        • 4. **查看歷史**
        • 5. **分支與合并**
      • **優缺點**
      • **適用場景**
      • **Git遷移建議**
      • **SVN vs Git總結**

目錄

在這里插入圖片描述

Git到底是什么?它該怎末用?

Git 是一款被廣泛應用的分布式版本控制系統,在軟件開發領域發揮著重要作用。它主要用于對項目文件的更改進行跟蹤,能夠有效協調多個開發者在同一項目上開展協作。下面為你詳細介紹其基本概念和常見的使用方法。

核心概念

  • 倉庫(Repository):這里面存放著項目的文件以及文件的歷史變更記錄。
  • 提交(Commit):它相當于文件狀態的“快照”,每一次提交都記錄了文件的更改情況。
  • 分支(Branch):分支是獨立的開發線路,借助分支可以在不影響主分支的前提下對新功能進行開發。
  • 合并(Merge):合并是將不同分支上的更改整合到一起的操作。
  • 遠程倉庫(Remote):遠程倉庫是存儲在網絡上的倉庫,像 GitHub、GitLab 等平臺上的倉庫就是典型的遠程倉庫。

基礎操作

1. 倉庫的創建
  • 初始化本地倉庫:在項目目錄下執行以下命令,就可以創建一個新的 Git 倉庫。
    git init
    
  • 克隆遠程倉庫:使用該命令能夠將遠程倉庫的內容復制到本地。
    git clone <遠程倉庫URL>
    
2. 文件的提交工作流程
  • 查看文件狀態:通過這個命令可以了解文件的修改情況。
    git status
    
  • 添加文件到暫存區:執行此命令可將文件添加到暫存區,為后續的提交做準備。
    git add <文件名>  # 添加指定文件
    git add .         # 添加所有文件
    
  • 提交更改:將暫存區的文件更改提交到本地倉庫。
    git commit -m "提交說明"
    
3. 分支管理
  • 查看分支:查看當前倉庫中存在的分支。
    git branch
    
  • 創建新分支:創建一個新的分支用于開發新功能。
    git branch <分支名>
    
  • 切換分支:從當前分支切換到指定分支。
    git checkout <分支名>
    
  • 創建并切換分支:這是一個組合命令,用于快速創建并切換到新分支。
    git checkout -b <分支名>
    
  • 合并分支:將指定分支的更改合并到當前分支。
    git merge <分支名>
    
4. 遠程倉庫操作
  • 關聯遠程倉庫:將本地倉庫與遠程倉庫進行關聯。
    git remote add origin <遠程倉庫URL>
    
  • 推送至遠程倉庫:把本地倉庫的提交推送到遠程倉庫。
    git push -u origin <分支名>
    
  • 拉取遠程更新:獲取遠程倉庫的最新更改并合并到本地。
    git pull origin <分支名>
    

進階操作

  • 查看提交歷史:查看倉庫的提交記錄。
    git log
    
  • 撤銷更改:放棄工作區的修改。
    git checkout -- <文件名>
    
  • 版本回退:將倉庫回退到指定的提交版本。
    git reset --hard <提交哈希值>
    
  • 解決沖突:當合并分支出現沖突時,需要手動編輯沖突文件,然后進行提交。
    # 編輯沖突文件后
    git add <沖突文件>
    git commit
    

實際應用建議

  • 使用 .gitignore 文件:在項目根目錄創建該文件,用于排除那些不需要被 Git 跟蹤的文件,像依賴文件、日志文件等。
  • 保持提交說明清晰:編寫有意義的提交說明,方便后續查閱和理解更改內容。
  • 遵循分支管理策略:可以采用 Git Flow 或 GitHub Flow 等分支管理策略,規范開發流程。
  • 定期備份到遠程倉庫:養成定期將本地提交推送到遠程倉庫的習慣,防止數據丟失。

git help <命令> 是 Git 自帶的強大文檔工具,用于查看特定 Git 命令的詳細使用說明和示例。以下是使用方法和常見命令的幫助示例:

基本用法

git help <命令>  # 打開瀏覽器查看HTML格式的幫助文檔
git help -m <命令>  # 以man手冊格式查看(終端內顯示)
git help -a  # 列出所有可用命令
git help -g  # 列出所有幫助主題

常用命令的幫助示例

  1. 查看 git commit 的幫助

    git help commit
    

    這將顯示 commit 命令的完整文檔,包括參數說明、提交消息規范和示例。

  2. 查看 git branch 的幫助

    git help branch
    

    文檔會解釋如何創建、刪除和管理分支,以及與遠程分支的關聯。

  3. 查看 git merge 的幫助

    git help merge
    

在這里插入圖片描述

幫助文檔的結構

Git 幫助文檔通常包含以下部分:

  • SYNOPSIS:命令的基本語法和參數格式。
  • DESCRIPTION:命令的功能和適用場景。
  • OPTIONS:每個參數的詳細說明。
  • EXAMPLES:實用示例(重點關注這部分!)。
  • SEE ALSO:相關命令和參考資料。

替代方法

如果你不想打開瀏覽器,可以直接在終端使用 man 命令:

man git-<命令>  # 例如:man git-commit

對于快速參考,也可以使用簡化版幫助:

git <命令> --help  # 例如:git commit --help

練習建議

  1. 運行 git help config,學習如何配置 Git 的用戶信息、別名等。
  2. 查看 git help remote,了解如何管理遠程倉庫。
  3. 通過 git help log 學習如何使用高級日志篩選(如 --author--since 等)。

掌握 git help 可以讓你在遇到問題時快速找到答案,無需依賴外部教程!
SVN(Subversion)是一種集中式版本控制系統,誕生于2000年,旨在替代CVS成為更高效的代碼管理工具。與Git的分布式架構不同,SVN采用中央服務器+客戶端的模式,所有文件和歷史記錄都存儲在中央服務器上。

核心概念

  1. 中央倉庫(Repository)
    唯一的代碼源,存儲所有文件和歷史版本,類似Git的遠程倉庫。

  2. 工作副本(Working Copy)
    從中央倉庫下載到本地的文件,用戶直接編輯工作副本,再提交更改到服務器。

  3. 版本號(Revision)
    每次提交都會生成全局遞增的版本號(如r1, r2),代表倉庫的整體狀態。

  4. 原子提交(Atomic Commit)
    提交操作要么全部成功,要么失敗回滾,確保倉庫一致性。

與Git的主要區別

特性SVN(集中式)Git(分布式)
架構依賴中央服務器本地完整倉庫,無需聯網
分支成本高(物理復制整個目錄)極低(創建指針)
離線工作不支持完全支持
提交對象整個倉庫的快照本地提交,后推送到遠程
版本號全局遞增整數40位哈希值

基本操作

1. 倉庫操作
svnadmin create /path/to/repo  # 創建新倉庫(服務器端)
svn checkout svn://server/repo  # 檢出工作副本到本地(客戶端)
2. 文件管理
svn add file.txt        # 添加文件到版本控制
svn delete file.txt     # 刪除文件
svn move old.txt new.txt  # 重命名/移動文件
3. 提交與更新
svn update              # 從服務器拉取最新變更
svn commit -m "說明"    # 提交本地更改到服務器
4. 查看歷史
svn log                 # 查看提交歷史
svn diff                # 查看文件差異
svn status              # 查看工作副本狀態
5. 分支與合并
svn copy trunk branches/new-feature  # 創建分支
svn merge branches/new-feature trunk  # 合并分支

優缺點

  • 優點

    • 簡單易用,適合小型團隊和單一代碼庫。
    • 清晰的權限管理(基于路徑控制)。
    • 對二進制文件(如圖像、文檔)支持更好。
  • 缺點

    • 依賴中央服務器,離線無法工作。
    • 分支操作笨重,合并容易出錯。
    • 大數據量下性能較差。

適用場景

  • 小型團隊或個人項目。
  • 需要嚴格權限控制的場景(如按目錄限制訪問)。
  • 管理非代碼資產(如文檔、設計文件)。

Git遷移建議

若想從SVN遷移到Git,可以使用:

git svn clone svn://server/repo  # 遷移SVN倉庫到Git

但需注意保留分支和提交歷史的完整性。

SVN vs Git總結

  • SVN:適合簡單、集中化管理,依賴中央服務器。
  • Git:適合復雜協作、頻繁分支,本地倉庫強大。

現代開發中,Git已成為主流選擇,但SVN在特定場景(如企業遺留系統)仍有使用價值。
在這里插入圖片描述

創作不易 點點關注呀

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

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

相關文章

【行為型之中介者模式】游戲開發實戰——Unity復雜系統協調與通信架構的核心秘訣

文章目錄 &#x1f54a;? 中介者模式&#xff08;Mediator Pattern&#xff09;深度解析一、模式本質與核心價值二、經典UML結構三、Unity實戰代碼&#xff08;成就系統協調&#xff09;1. 定義中介者接口與同事基類2. 實現具體同事類3. 實現具體中介者4. 客戶端使用 四、模式…

【網工第6版】第10章 網絡規劃和設計②

目錄 ■ 網絡分析與設計 ◆ 網絡規劃設計模型 ◆ 網絡設計的約束因素 ◆ 技術評價 ■ 網絡結構與功能 ◆ 局域網結構類型 ■ 網絡冗余設計 ◆ 網絡冗余設計-備用路徑 ◆ 網絡冗余設計-負載分擔 ■ 廣域網接入技術 ◆ 廣域網接入技術 ◆ 接入和終結設備 ■ 網絡分析…

PowerBI鏈接EXCEL實現自動化報表

PowerBI鏈接EXCEL實現自動化報表 曾經我將工作中一天的工作縮短至2個小時&#xff0c;其中最關鍵的一步就是使用PowerBI鏈接Excel做成一個自動化報表&#xff0c;PowerBI更新源數據&#xff0c;Excel更新報表并且保留報表格式。 以制作一個超市銷售報表為例&#xff0c;簡單敘…

C#.NET 或 VB.NET Windows 窗體中的 DataGridView – 技巧、竅門和常見問題

DataGridView 控件是一個 Windows 窗體控件&#xff0c;它允許您自定義和編輯表格數據。它提供了許多屬性、方法和事件來自定義其外觀和行為。在本文中&#xff0c;我們將討論一些常見問題及其解決方案。這些問題來自各種來源&#xff0c;包括一些新聞組、MSDN 網站以及一些由我…

表記錄的檢索

1.select語句的語法格式 select 字段列表 from 表名 where 條件表達式 group by 分組字段 [having 條件表達式] order by 排序字段 [asc|desc];說明&#xff1a; from 子句用于指定檢索的數據源 where子句用于指定記錄的過濾條件 group by 子句用于對檢索的數據進行分組 ha…

能源設備數據采集

在全球可持續發展目標與環境保護理念日益深入人心的時代背景下&#xff0c;有效管理和優化能源使用已成為企業實現綠色轉型、提升競爭力的關鍵路徑。能源設備數據采集系統&#xff0c;作為能源管理的核心技術支撐&#xff0c;通過對各類能源生產設備運行數據的全面收集、深度分…

【鴻蒙開發】性能優化

語言層面的優化 使用明確的數據類型&#xff0c;避免使用模糊的數據類型&#xff0c;例如ESObject。 使用AOT模式 AOT就是提前編譯&#xff0c;將字節碼提前編譯成機器碼&#xff0c;這樣可以充分優化&#xff0c;從而加快執行速度。 未啟用AOT時&#xff0c;一邊運行一邊進…

群暉NAS部署PlaylistDL音樂下載器結合cpolar搭建私有云音樂庫

文章目錄 前言1.關于PlaylistDL音樂下載器2.Docker部署3.PlaylistDL簡單使用4.群暉安裝Cpolar工具5.創建PlaylistDL音樂下載器的公網地址6.配置固定公網地址總結 前言 各位小伙伴們&#xff0c;你們是不是經常為了聽幾首歌而開通各種平臺的VIP&#xff1f;或者為了下載無損音質…

REST架構風格介紹

一.REST&#xff08;表述性狀態轉移&#xff09; 1.定義 REST&#xff08;Representational State Transfer&#xff09;是由 Roy Fielding 在 2000 年提出的一種軟件架構風格&#xff0c;用于設計網絡應用的通信模式。它基于 HTTP 協議&#xff0c;強調通過統一的接口&#…

計算機視覺----基于錨點的車道線檢測、從Line-CNN到CLRNet到CLRKDNet 本文所提算法Line-CNN 后續會更新以下全部算法

本文所提算法如下&#xff1a; 敘述按時間順序 你也可以把本文當作快速閱讀這幾篇文獻的一個途徑 所有重要的部分我都已經標注并弄懂其原理 方便自己也是方便大家 Line-CNN&#xff1a;基于線提議單元的端到端交通線檢測 摘要 交通線檢測是一項基礎且具有挑戰性的任務。以往的…

一.android Studio開發系統應用——導入TvSettings源碼

目標 最終效果如上,實現在AS中編輯源碼后一鍵在真機中運行。達到和普通應用開發一樣的調試和編碼過程。這種方法可以大幅度提升開發速度,但是導入過程確實相對繁瑣和消耗時間。適合需要精細或者頻繁改動的系統app源碼。 一、新建項目 包名:com.android.tv.settings 版本:…

20250515讓飛凌的OK3588-C的核心板在Linux R4下適配以太網RTL8211F-CG為4線百兆時的接線圖

20250515讓飛凌的OK3588-C的核心板在Linux R4下適配以太網RTL8211F-CG為4線百兆時的接線圖 2025/5/15 20:19 緣起&#xff1a;以前做的網線找不到了&#xff0c;那就再來一條吧。 引腳定義要從頭來過&#xff1f;還好找到了一條。 開干&#xff01; 萬用表一對/點&#xff0c;幾…

【技術原理】Linux 文件時間屬性詳解:Access、Modify、Change 的區別與聯系

在 Linux 系統中&#xff0c;每個文件都有三個核心時間屬性&#xff1a;Access Time (atime)、Modify Time (mtime) 和 Change Time (ctime)。它們分別記錄文件不同維度的變更信息&#xff0c;以下是具體區別與聯系&#xff1a; 一、定義與觸發條件 時間屬性定義觸發條件示例A…

乘法口訣練習神器

請你利用python語言開發一個“乘法口訣練習神器”&#xff0c;主要輔助小學生練習乘法口訣&#xff0c;主要功能如下&#xff1a; 1. 能夠隨機循環出10道題&#xff0c;可以是乘法或者是除法。如果是乘法&#xff0c;確保兩個因數都是1-9之間的整數&#xff1b;如果是除法&…

[c語言日寄]數據結構:棧

【作者主頁】siy2333 【專欄介紹】?c語言日寄?&#xff1a;這是一個專注于C語言刷題的專欄&#xff0c;精選題目&#xff0c;搭配詳細題解、拓展算法。從基礎語法到復雜算法&#xff0c;題目涉及的知識點全面覆蓋&#xff0c;助力你系統提升。無論你是初學者&#xff0c;還是…

磁盤I/O瓶頸排查:面試通關“三部曲”心法

想象一下&#xff0c;你就是線上系統的“交通調度總指揮”&#xff0c;服務器的磁盤是所有數據進出的“核心樞紐港口”。當這個“港口”突然擁堵不堪&#xff0c;卡車&#xff08;數據請求&#xff09;排起長龍&#xff0c;進不去也出不來&#xff0c;整個系統的“物流”&#…

基于大模型預測胃穿孔預測與圍手術期管理系統技術方案

目錄 1. 系統架構模塊2. 關鍵算法實現2.1 術前預測模型(Transformer多模態融合)2.2 術中實時分析(在線學習LSTM)3. 模塊流程圖(Mermaid)3.1 數據預處理系統3.2 術前預測系統3.3 術中實時分析系統4. 技術驗證模塊4.1 模型可解釋性驗證4.2 邊緣計算部署架構1. 系統架構模塊…

C++:類和對象4

一&#xff0c;日期類實現 學習建議&#xff1a; 對于計算機學習來說&#xff0c;調試十分重要&#xff0c;所以在日常學習中一定要加大代碼練習&#xff0c;刷代碼題和課后自己敲出課上代碼例題&#xff0c;注意不要去對比正確代碼或者網上找正確代碼直接使用&#xff0c;一…

大數據架構選型分析

選擇依據 1.業務需求與技術要求 用戶需要根據自己的業務需求來選擇架構&#xff0c;如果業務對于Hadoop、Spark、Strom等關鍵技術有強制性依賴&#xff0c;選擇Lambda架構可能較為合適&#xff1b;如果處理數據偏好于流式計算&#xff0c;又依賴Flink計算引擎&#xff0c;那么…

Trae 插件 Builder 模式:從 0 到 1 開發天氣查詢小程序,解鎖 AI 編程新體驗

在軟件開發領域&#xff0c;效率與創新始終是開發者追求的核心目標。Trae 插件&#xff08;原 MarsCode 編程助手&#xff09;Builder 模式的全面上線&#xff0c;無疑為開發者帶來了全新的解決方案。它不僅同時支持 VS Code、JetBrains IDEs 等主流開發環境&#xff0c;還能讓…