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

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

3天內不再提示

Git是什么

汽車電子技術 ? 來源:嵌入式之入坑筆記 ? 作者: 嵌入式之入坑筆記 ? 2023-02-10 11:23 ? 次閱讀

Git是一個免費的、開源的分布式版本控制系統(tǒng),可以用于記錄一個或者若干個文件內容的變化,方便查閱或者修改。

Git官網:https://git-scm.com/

1、常見的版本控制系統(tǒng)

1.1、集中式版本控制系統(tǒng)(SVN、CVS、perforce)

集中式版本控制系統(tǒng)的示意圖如下:

pYYBAGPluGiAFKQ0AACuICnLywg720.png

特點:

1)一定會有一個中央服務器;

2)優(yōu)點在于所有用戶都可以看到最新更新的文件或者記錄,管理員也很方便掌握每個人的權限;

3)缺點是如果中央服務器出故障的時候,所有用戶都不能進行上傳、下載、更新等;

1.2、分布式版本控制系統(tǒng)(Git、BitKeeper)

分布式版本控制系統(tǒng)的示意圖如下:

poYBAGPluH2ADkVOAAC17Slukic083.png

每個客戶端都有備份和記錄,大家都可以查看到版本記錄和修改以后的記錄。

分布式版本控制系統(tǒng)存放的不是版本與版本之間的差異,而是版本的索引。

2、Git的工作區(qū)、暫存區(qū)、版本庫

使用Git時對其工作區(qū)、暫存區(qū)和版本庫這三個的概念是很有必要了解的,了解這三個概念有助于對Git的工作過程有一個比較明確的認知。那這三個概念都是些什么意思呢?

1)工作區(qū):

就是在電腦上能看到的目錄或者文件。簡單而言就是你的本地文件。

2)暫存區(qū)(stage 或 index):

一般存放在

.git

目錄下的 index 文件(.git/index)中,所以也可以把暫存區(qū)叫作索引(index)。

3)版本庫:

工作區(qū)中有一個隱藏目錄.git,這個不算工作區(qū),而是 Git 的版本庫。

工作區(qū)、版本庫中的暫存區(qū)和版本庫之間的關系如下圖所示:

poYBAGPluImADhsaAAIiXOV64j0627.png

上圖中左側為工作區(qū),右側為版本庫。在版本庫中標記為 "index" 的區(qū)域是暫存區(qū)(stage/index),標記為 "master" 的是 master 分支所代表的目錄樹。

上圖中可以看到,此時 "HEAD" 實際是指向 master 分支的一個"指針"。所以圖中的命令中出現(xiàn) HEAD 的地方是可以用 master 來替換。

上圖中的 objects 標識的區(qū)域為 Git 的對象庫,位于 ".git/objects" 目錄下,里面包含了創(chuàng)建的各種對象及內容。

2.1、一些指令執(zhí)行時所存在的關聯(lián)

2.1.1、向暫存區(qū)追加文件。

 git add xxx

使用 git add 命令時,是對工作區(qū)修改(或新增)的文件進行操作的,會將暫存區(qū)的目錄樹更新。

同時,工作區(qū)修改(或新增)的文件內容會被寫入到對象庫中的一個新的對象中,而該對象的ID被記錄在暫存區(qū)的文件索引中。

2.1.2、暫存區(qū)文件上傳版本庫。

git commit -m "描述"

當執(zhí)行提交操作

git commit

時,會將暫存區(qū)的目錄樹寫到版本庫中,master 分支會做相應的更新。即 master 指向的目錄樹就是提交時暫存區(qū)的目錄樹。

2.1.3、版本回退。

git reset HEAD

當執(zhí)行

git reset HEAD

命令時,暫存區(qū)的目錄樹會被重寫,被 master 分支指向的目錄樹所替換,但是工作區(qū)不受影響。

2.1.4、刪除文件。

git rm --cached 

1)當執(zhí)行

git rm --cached

命令時,會直接從暫存區(qū)刪除文件,工作區(qū)則不做出改變。

2.1.5、檢出文件

git checkout .  或  git checkout -- 

1)當執(zhí)行

git checkout .

會用暫存區(qū)全部的文件替換工作區(qū)的文件。或者

git checkout --

命令時,會用暫存區(qū)指定的文件替換工作區(qū)的文件。這個操作是很危險,會清除工作區(qū)中未添加到暫存區(qū)的改動。

git checkout HEAD .  或者  git checkout HEAD 

2)當執(zhí)行

git checkout HEAD .

會用 HEAD 指向的 master 分支中的全部文件替換暫存區(qū)和以及工作區(qū)中的文件。或者

git checkout HEAD

命令時,會用 HEAD 指向的 master 分支中的部分文件替換暫存區(qū)和以及工作區(qū)中的文件。這個命令也是極具危險性的,因為不但會清除工作區(qū)中未提交的改動,也會清除暫存區(qū)中未提交的改動。

3、代碼托管中心

除了本地庫可以保存版本的信息以外,為了更加方便使用,可以在代碼托管平臺中創(chuàng)建遠程庫,將本地庫和遠程庫建立連接,實現(xiàn)遠程協(xié)同的開發(fā)。它的好處有:

1)方便團隊內部合作開發(fā)項目、共同項目管理;

2)方便跨團隊之間的項目開發(fā)合作,使得不同公司、組織之間的合作開發(fā)可以方便的進行。

4、Git的工作流程

Git的工作流程可以歸納如下圖所示:

pYYBAGPluJiAYIVIAAD8WGFyFxE087.png

總的來說:Git是一個很方便的代碼托管平臺,使用者可以在遠程服務器上建立屬于自己的項目資源管理庫,實現(xiàn)遠程和本地的資源同步,本地添加、修改的文件可以及時更新到遠程服務器上保存管理。同時也可以便利于多人協(xié)作開發(fā),及時更新最新的資源庫文件當本地的工作區(qū),及時知曉最新的更新進度,加快開發(fā)的進度。

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

    關注

    41

    文章

    6511

    瀏覽量

    110384
  • 開源
    +關注

    關注

    3

    文章

    3218

    瀏覽量

    42329
  • Git
    Git
    +關注

    關注

    0

    文章

    196

    瀏覽量

    15720
收藏 人收藏

    評論

    相關推薦

    Git常用的超級實用命令

    Git作為最流行的代碼版本控制工具,基本上已經成為了程序員的一個標配技能。無論使用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 ?2467次閱讀
    騰訊是如何使用<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代碼拉取@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命令經常被認為是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 是什么? Git 誕生于 2005 年,是一款免費、開源、分布式版本控制系統(tǒng)。 直接記錄快照,而非差異比較 Git 和其它版本控制系統(tǒng)的主要差別在于 Git 對待數(shù)據的方式。
    的頭像 發(fā)表于 07-22 10:50 ?1738次閱讀
    <b class='flag-5'>Git</b>是什么 <b class='flag-5'>Git</b>介紹

    Git命令的綜合手冊怎么找

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

    git基本操作命令用法

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