0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

Git是什么 Git介紹

麥辣雞腿堡 ? 來源:嵌入式Linux系統(tǒng)開發(fā) ? 作者:嵌入式Linux系統(tǒng)開 ? 2023-07-22 10:50 ? 次閱讀

git 是什么?

Git 誕生于 2005 年,是一款免費、開源、分布式版本控制系統(tǒng)。

直接記錄快照,而非差異比較

Git 和其它版本控制系統(tǒng)的主要差別在于 Git 對待數(shù)據(jù)的方式。

其它大部分系統(tǒng)以文件變更列表的方式存儲信息,這類系統(tǒng)(CVS、Subversion等)將它們存儲的信息看作是一組基本文件和每個文件隨時間逐步累積的差異
(基于差異的版本控制)。

圖片

Git 不按照以上方式對待或保存數(shù)據(jù)。反之,Git 更像是把數(shù)據(jù)看作是對小型文件系統(tǒng)的一系列快照。

在 Git中,每當你提交更新或保存項目狀態(tài)時,它基本上就會對當時的全部文件創(chuàng)建一個快照并保存這個快照的索引。為了效率,如果文件沒有修改,Git
不再重新存儲該文件,而是只保留一個鏈接指向之前存儲的文件。Git 對待數(shù)據(jù)更像是一個快照流。

圖片

這是 Git 與幾乎所有其它版本控制系統(tǒng)的重要區(qū)別。

近乎所有操作都是本地執(zhí)行

在 Git 中的絕大多數(shù)操作都只需要訪問本地文件和資源,一般不需要來自網(wǎng)絡上其它計算機的信息。

如果你習慣于所有操作都有網(wǎng)絡延時開銷的集中式版本控制系統(tǒng),Git 在這方面會讓你感到速度之神賜給了 Git
超凡的能量。因為你在本地磁盤上就有項目的完整歷史,所以大部分操作看起來瞬間完成。

Git 保證完整性

Git 中所有的數(shù)據(jù)在存儲前都計算校驗和,然后以校驗和來引用。

Git 用以計算校驗和的機制叫做 SHA-1 散列(hash,哈希)。這是一個由 40 個十六進制字符(0-9 和 a-f)組成的字符串,基于 Git
中文件的內(nèi)容或目錄結構計算出來。SHA-1 哈希看起來是這樣:

24b9da6552252987aa493b52f8696cd6d3b00373

Git 中使用這種哈希值的情況很多,你將經(jīng)常看到這種哈希值。實際上,Git 數(shù)據(jù)庫中保存的信息都是以文件內(nèi)容的哈希值來索引,而不是文件名。

Git 一般只添加數(shù)據(jù)

你執(zhí)行的 Git 操作,幾乎只往 Git 數(shù)據(jù)庫中添加數(shù)據(jù)。你很難使用 Git 從數(shù)據(jù)庫中刪除數(shù)據(jù),也就是說 Git
幾乎不會執(zhí)行任何可能導致文件不可恢復的操作。

同別的 VCS 一樣,未提交更新時有可能丟失或弄亂修改的內(nèi)容。但是一旦你提交快照到 Git 中,
就難以再丟失數(shù)據(jù),特別是如果你定期的推送數(shù)據(jù)庫到其它倉庫的話。

三種狀態(tài)

Git 有三種狀態(tài),你的文件可能處于其中之一:已提交(committed)、已修改(modified) 和 已暫存(staged)

已修改表示修改了文件,但還沒保存到數(shù)據(jù)庫中。

已暫存表示對一個已修改文件的當前版本做了標記,使之包含在下次提交的快照中。

已提交表示數(shù)據(jù)已經(jīng)安全地保存在本地數(shù)據(jù)庫中。

這會讓我們的 Git 項目擁有三個階段:工作區(qū)、暫存區(qū)以及 Git 目錄。

圖片

工作區(qū)是對項目的某個版本獨立提取出來的內(nèi)容。這些從 Git 倉庫的壓縮數(shù)據(jù)庫中提取出來的文件,放在磁盤上供你使用或修改。

暫存區(qū)是一個文件,保存了下次將要提交的文件列表信息,一般在 Git 倉庫目錄中。按照 Git
的術語叫做“索引”,不過一般說法還是叫“暫存區(qū)”。

Git 倉庫目錄是 Git 用來保存項目的元數(shù)據(jù)和對象數(shù)據(jù)庫的地方。這是 Git
中最重要的部分,從其它計算機克隆倉庫時,復制的就是這里的數(shù)據(jù)。

基本的 Git 工作流程如下:

在工作區(qū)中修改文件。

將你想要下次提交的更改選擇性地暫存,這樣只會將更改的部分添加到暫存區(qū)。

提交更新,找到暫存區(qū)的文件,將快照永久性存儲到 Git 目錄。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 控制系統(tǒng)

    關注

    41

    文章

    6509

    瀏覽量

    110381
  • 數(shù)據(jù)

    關注

    8

    文章

    6808

    瀏覽量

    88743
  • Git
    Git
    +關注

    關注

    0

    文章

    196

    瀏覽量

    15720
收藏 人收藏

    評論

    相關推薦

    Git常用的超級實用命令

    Git作為最流行的代碼版本控制工具,基本上已經(jīng)成為了程序員的一個標配技能。無論使用GitHub,GitLib,Gitee等進行代碼托管,均基于Git。下面聊一聊開發(fā)人員必會的幾個Git技巧和團隊協(xié)作
    的頭像 發(fā)表于 10-09 17:19 ?1127次閱讀
    <b class='flag-5'>Git</b>常用的超級實用命令

    git命令的基本使用

    git config 第一次使用git或者剛安裝的git時,使用此命令設置身份Name 和 Eamail 地址。并且每次提交時會使用此信息。
    的頭像 發(fā)表于 12-11 13:53 ?873次閱讀

    Pro_Git中文版

    代碼版本管理軟件GIT的詳細使用教程,GIT上手比較慢,不看資料很難上手
    發(fā)表于 07-20 17:21 ?0次下載

    Git是什么?Git的基本使用資料說明

      Git是什么? Git是目前世界上最先進的分布式版本控制系統(tǒng)(沒有之一)。
    發(fā)表于 05-29 17:56 ?1次下載
    <b class='flag-5'>Git</b>是什么?<b class='flag-5'>Git</b>的基本使用資料說明

    騰訊是如何使用Git?

    那么,切換到 git 來維護代碼倉庫,會對我們的日常開發(fā)造成影響嗎?答應是顯然的,首先我們需要學習 git 的基本概念與用法,然后就需要我們在具體的項目實踐過程中打磨我們的 git 使用技巧
    的頭像 發(fā)表于 08-10 15:02 ?2466次閱讀
    騰訊是如何使用<b class='flag-5'>Git</b>?

    Git的參考手冊教程免費下載

    在使用Git前我們需要先安裝 Git。Git 目前支持 Linux/Unix、Solaris、Mac和 Windows 平臺上運行。
    發(fā)表于 09-21 08:00 ?1次下載
    <b class='flag-5'>Git</b>的參考手冊教程免費下載

    Git 命令+原理 程序員必備的基礎

    掌握Git命令是每位程序員必備的基礎,之前一直是用smartGit工具,直到看到大佬們都是在用Git命令操作的,回想一下,發(fā)現(xiàn)有些Git命令我都忘記了,于是寫了這篇博文,復習一下~ 文章目錄
    的頭像 發(fā)表于 11-14 10:01 ?1718次閱讀
    <b class='flag-5'>Git</b> 命令+原理 程序員必備的基礎

    git 總結

    一、git代碼拉取@TOC1.獲取代碼地址:EP33: recursive ssh://172.29.169.30:29418/MCU/SCC -b v2.0-saic-ep332.步驟:&
    發(fā)表于 12-08 11:21 ?10次下載
    <b class='flag-5'>git</b> 總結

    Git權威指南

    Git管理資料,方便大家學習git知識
    發(fā)表于 06-29 14:15 ?0次下載

    利用Learn Git Branching輕松學習Git

    Git作為世界上最流行的版本控制系統(tǒng),可以說是每一位與程序打交道的朋友最值得學習的軟件之一。除了管理自己的項目,如果你對參與開源項目感興趣,那么Git更是聯(lián)結Github、Gitlab等知名代碼項目
    的頭像 發(fā)表于 09-15 14:53 ?1505次閱讀

    Git的使用

    Git的使用
    的頭像 發(fā)表于 01-10 16:45 ?924次閱讀

    git rebase與相關git merge命令比較

    ? #前言 ??? git rebase命令經(jīng)常被認為是Git的巫術,初學者應該遠離它,但它實際上可以讓開發(fā)團隊在使用時更加輕松。今天,我們將git rebase與相關git merg
    的頭像 發(fā)表于 05-26 16:22 ?834次閱讀
    <b class='flag-5'>git</b> rebase與相關<b class='flag-5'>git</b> merge命令比較

    git rebase和git merge的區(qū)別

    ? 解決沖突 git rebase和git merge的區(qū)別 分支合并 git merge是用來合并兩個分支的。 比如:將 b 分支合并到當前分支。 同樣git rebase b,也是
    的頭像 發(fā)表于 07-05 09:54 ?607次閱讀
    <b class='flag-5'>git</b> rebase和<b class='flag-5'>git</b> merge的區(qū)別

    Git命令的綜合手冊怎么找

    若你使用 Git 時需要獲取幫助,有三種等價的方法可以找到 Git 命令的綜合手冊(manpage): $ git help $ git -- help $ man
    的頭像 發(fā)表于 07-22 11:02 ?618次閱讀

    git基本操作命令用法

    基本用法 上面的四條命令在工作目錄、暫存目錄(也叫做索引)和倉庫之間復制文件。 git add files把當前文件放入暫存區(qū)域。 git commit給暫存區(qū)域生成快照并提交。 git reset
    的頭像 發(fā)表于 09-13 16:29 ?744次閱讀
    <b class='flag-5'>git</b>基本操作命令用法