Git簡介和發展

Git

簡介

  • Git是一個開源的分布式版本控制系統,跨平臺,支持Windows、Linux、MacOS。主要是用于項目的版本管理,是由林納斯·托瓦茲(Linux Torvalds)在2005年為Linux內核開發而創建。

起因

  • 在2002年至2005年間,Linux內核開發團隊使用BitKeeper(一個專有的版本控制系統)來管理代碼,Linux團隊匯集了全球頂尖人才,免不了有人想破解BitKeeper的軟件,BitKeeper的開發公司BitMover在2005年停止了向Linux團隊的免費版本支持。
  • 于是成功惹怒了Linus這位大佬,迫使Linus尋找一個高效、分布式的版本控制工具。由于對當時其他工具(如SVN、CVS)的性能和功能不滿,Linus決定開發一個自己的版本控制系統,然后一周后,Git這個延續至今的閃耀新星誕生。只能說大佬就是大佬。
  • 站在歷史的角度來說,BitKeeper公司也是錯過了一次流芳百世的機會/商機,如果BitKeeper公司繼續提供使用,可能也不會有Git的問世。歷史的滾滾車輪總是這么奇妙,悄無聲息,又很神秘,好像一切都是安排好的一樣。

設計目標

  • 高效性:能夠快速處理大型項目(如Linux內核)的版本控制
  • 分布式:允許開發者在本地操作完整的歷史記錄,無需依賴中央服務器
  • 數據完整性:通過SHA-1哈希確保版本歷史的可靠性
  • 簡單易用:提供直觀的命令和靈活的工作流程

發展歷史

  • 幾個關鍵階段

    • 2005年4月7日正式上線

    • 2005-2008年:社區接管與功能完善

    • 2008-2012年:普及與生態系統繁榮

    • 2012-2020年:性能優化與新功能

    • 2020年至今:現代化與企業級應用

當今地位

  • 普及度:Git是全球最流行的版本控制系統,幾乎所有主流代碼托管平臺(Github、GitLab、Bitbucket)都是以Git為核心
  • 影響力:Git不僅用于軟件開發,還被應用于書籍寫作、法律文檔管理、數據科學等領域
  • 維護:Git由開源社區進行維護,擁有全球頂尖的開發者貢獻者,代碼托管在GitHub上

Git下載與安裝

  • 官網地址:https://git-scm.com/
    在這里插入圖片描述
  • GitHub地址:https://github.com/git/git

在這里插入圖片描述

基本概念

  • 倉庫(Repository):存儲代碼和版本歷史的地方,分為本地倉庫和遠程倉庫。
  • 提交(Commit):代碼變更的快照,記錄修改內容和元數據(如作者、時間)。
  • 分支(Branch):代碼的獨立開發線,默認分支通常為main。
  • 合并(Merge):將不同分支的更改整合到一起。
  • 遠程倉庫(Remote):托管在服務器上的倉庫,如GitHub、GitLab。

常用命令

  • 初始化:git init(創建新倉庫)
  • 克隆:git clone (復制遠程倉庫)
  • 添加:git add (將更改加入暫存區)
  • 提交:git commit -m “message”(保存更改到本地倉庫)
  • 推送:git push origin (上傳本地更改到遠程倉庫)
  • 拉取:git pull(從遠程倉庫獲取更新)
  • 分支:git branch(查看分支)、git checkout -b (創建并切換分支)
  • 合并:git merge (合并分支)

應用場景

  • 軟件開發:管理代碼版本,支持團隊協作。
  • 開源項目:通過GitHub等平臺實現全球開發者貢獻。
  • 非代碼場景:管理文檔、配置文件、數據科學項目等。

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

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

相關文章

Perspective,數據可視化的超級引擎!

Perspective 是一個強大的交互式數據分析和可視化庫,它允許你創建高度可配置的報告、儀表板、筆記本和應用程序。給用戶提供了一個新的視角來看待數據。 Stars 數9125Forks 數1217 主要特點 高效流式查詢引擎:Perspective使用C編寫,并編譯為…

MySQL COUNT(*) 查詢優化詳解!

目錄 前言1. COUNT(*) 為什么慢?—— InnoDB 的“計數煩惱” 🤔2. MySQL 執行 COUNT(*) 的方式 (InnoDB)3. COUNT(*) 優化策略:快!準!狠!策略一:利用索引優化帶 WHERE 子句的 COUNT(*) (最常見且…

如何在postman使用時間戳

1. 使用 Pre-request Script 動態轉換? 在發送請求前,將日期字符串轉為時間戳并存儲為環境變量/全局變量。 ?示例代碼? // 將日期字符串(如 "2023-10-01")轉為時間戳(毫秒) const dateString "2…

嵌入式學習筆記 - 運算放大器的共模抑制比

一 定義 共模抑制比(Common Mode Rejection Ratio, ?CMRR?)是衡量差分放大器(或差分電路)抑制共模信號能力的關鍵指標。它在電子工程中尤為重要,特別是在需要處理微弱信號或對抗環境噪聲的場景中。 核心概念 ?共…

成龍電影中的三菱汽車

帕杰羅、 Lancer Evolution、 3000GT Mitsubishi Lancer Evo ll 1995 附錄 Mercedes-Benz 280SL(W113),俗稱“Pagoda”(帕格達)

Spring 項目無法連接 MySQL:Nacos 配置誤區排查與解決

在開發過程中,我們使用 Nacos 來管理 Spring Boot 項目的配置,其中包括數據庫連接配置。然而,在實際操作中,由于一些概念的混淆,我們遇到了一些連接問題。本文將分享我的故障排查過程,幫助大家避免類似的錯…

LabVIEW與 IMAQ Vision 機器視覺應用

在工業生產及諸多領域,精確高效的檢測至關重要。基于 LabVIEW 與 IMAQ Vision 的機器視覺應用,深入剖析其原理、系統構成、軟件設計及優勢,為相關領域工程師提供全面技術參考。 ? 一、技術原理 (一)機器視覺技術基礎…

【STM32 學習筆記】USART串口

注意:在串口助手的接收模式中有文本模式和HEX模式兩種模式,那么它們有什么區別? ??文本模式和Hex模式是兩種不同的文件編輯或瀏覽模式,不是完全相同的概念。文本模式通常是指以ASCII編碼格式表示文本文件的編輯或瀏覽模式。在文…

【WPS】怎么解決“word的復制表格”粘貼到“excel的單元格”變多行單元格的問題

把 word文檔復制表格到這個excel表格上面的話,會出現由單個單元格變成多行單元格的情況。 現在,就這個問題怎么解決,提出了一個方案,就是先查找是什么導致了這個換行,然后再將換行的這個字符進行一個整體的替換&#x…

嵌入式開發面試題詳解:STM32 與嵌入式開發核心知識全面解析

一、STM32 共有幾種基本時鐘信號? 題目 STM32 共有幾種基本時鐘信號? 解答 STM32 包含 4 種基本時鐘信號,分別為 HSI(內部高速時鐘)、HSE(外部高速時鐘)、LSI(內部低速時鐘&…

華為策略路由

路由策略:是對路由條目進行控制,通告控制路由條目影響報文的轉發路徑。路由策略為控制平面。 策略路由:是根據報文特征,認為的控制報文從某個即可轉發出去,不修改路由表。即策略路由為在轉發平面。 路由策略 策略路由…

# YOLOv3:深度學習中的目標檢測利器

YOLOv3:深度學習中的目標檢測利器 引言 在計算機視覺領域,目標檢測是一項核心任務,它涉及到識別圖像或視頻中的物體,并確定它們的位置。隨著深度學習技術的快速發展,目標檢測算法也在不斷進步。YOLO(You …

紅黑樹刪除的實現與四種情況的證明

🧭 學習重點 刪除節點的三種情況紅黑樹如何恢復性質四種修復情況完整可運行的 C 實現 一、紅黑樹刪除的基礎理解 紅黑樹刪除比插入復雜得多,因為: 刪除的是黑節點可能會破壞“從根到葉子黑節點數相等”的性質。刪除紅節點無需修復&#xf…

vue配置代理解決前端跨域的問題

文章目錄 一、概述二、報錯現象三、通過配置代理來解決修改request.js中的baseURL為/api在vite.config.js中增加代理配置 四、參考資料 一、概述 跨域是指由于瀏覽器的同源策略限制,向不同源(不同協議、不同域名、不同端口)發送ajax請求會失敗 二、報錯現象 三、…

T-SQL在SQL Server中判斷表、字段、索引、視圖、觸發器、Synonym等是否存在

SQL Server創建或者刪除表、字段、索引、視圖、觸發器前判斷是否存在。 目錄 1. SQL Server創建表之前判斷表是否存在 2. SQL Server新增字段之前判斷是否存在 3. SQL Server刪除字段之前判斷是否存在 4. SQL Server新增索引之前判斷是否存在 5. SQL Server判斷視圖是否存…

金融企業如何借力運維監控強化合規性建設?

日前,國家金融監督管理總局網站公布行政處罰信息,認定某銀行存在多項違規并對其進行罰款。其中,國家金融監督管理總局認定該銀行主要違規內容包括: 一、部分重要信息系統識別不全面,災備建設和災難恢復能力不符合監管要…

leetcode hot100 技巧

如有缺漏謬誤&#xff0c;還請批評指正。 1.只出現一次的數字 利用異或運算相同得0的特點。所有出現過兩次的數字都會在異或運算累加過程中被抵消。 class Solution { public:int singleNumber(vector<int>& nums) {int res0;for(int i0;i<nums.size();i) res^n…

git做commit信息時的校驗

親測可用&#xff01;不行你來打我&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 1. 文件基本信息 屬性說明文件名commit-msg&#xff08;必須無擴展名&#xff0c;如 .sh 或 .txt 會導致失效&#xff09;位置倉庫的 .git/hooks/ 目錄下&#xff08;或全局模…

4.9/Q1,GBD數據庫最新文章解讀

文章題目&#xff1a;The burden of diseases attributable to high body mass index in Asia from 1990 - 2019: results from the global burden of disease study 2019 DOI&#xff1a;10.1080/07853890.2025.2483977 中文標題&#xff1a;1990 年至 2019 年亞洲高體重指數導…

Activity動態切換Fragment

Activity 動態切換 Fragment 是 Android 開發中常見的需求&#xff0c;用于構建靈活的用戶界面。 以下是實現 Activity 動態切換 Fragment 的幾種方法&#xff0c;以及一些最佳實踐&#xff1a; 1. 使用 FragmentManager 和 FragmentTransaction (推薦) 這是最常用和推薦的方…