• 正文
    • git是什么?
    • 為什么要用git?
    • git安裝和初次使用
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

飛凌嵌入式ElfBoard ELF 1板卡 -git管理源碼之git安裝和使用

01/14 09:00
1673
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

git是什么?

git是一個(gè)開源的分布式版本控制系統(tǒng),可以有效、高速地處理從很小到非常大的項(xiàng)目版本管理,也是Linus Torvalds為了幫助管理Linux內(nèi)核開發(fā)而開發(fā)的一個(gè)開放源碼的版本控制軟件。git與常用的版本控制工具SVN等不同,它采用了分布式版本庫的方。

簡而言之,git就是一個(gè)版本管理庫,也是一個(gè)版本管理工具,它的作用就是幫助我們記錄版本信息,以及修改內(nèi)容。git的結(jié)構(gòu)是分布式的資源庫,特點(diǎn)是沒有嚴(yán)格的服務(wù)器概念,每個(gè)單體都可作為資源庫。這個(gè)特點(diǎn)就讓我們?nèi)巳擞凶约旱膅it倉庫這件事變得容易實(shí)現(xiàn)。

為什么要用git?

提到版本控制,總會想起大學(xué)畢業(yè)時(shí)寫論文的場景,你電腦上的畢業(yè)論文一定出現(xiàn)過這番景象!

課設(shè)_初稿.doc

課設(shè)_修改1.doc

課設(shè)_修改2.doc

課設(shè)_修改3.doc

課設(shè)_完整版1.doc

課設(shè)_完整版2.doc

課設(shè)_完整版3.doc

課設(shè)_最終版1.doc

課設(shè)_最終版2.doc

課設(shè)_死也不改版.doc

...

這就是最原始的版本控制方法,這種方式的缺點(diǎn)也是顯著的。

多個(gè)文件,保留所有版本時(shí),需要為每個(gè)版本保存一個(gè)文件;

協(xié)同操作,多人協(xié)同操作時(shí),需要將文件打包發(fā)來發(fā)去;

容易丟失,被刪除意味著永遠(yuǎn)失去;

為了解決這個(gè)痛點(diǎn),應(yīng)運(yùn)而生了一批版本管理工具,如:git、svn等。其中l(wèi)inux當(dāng)中最常用的當(dāng)屬git,因此學(xué)會使用git是十分必要的。

git安裝和初次使用

git倉庫的構(gòu)建分兩種方式,一種是管理當(dāng)前的代碼,給當(dāng)前代碼創(chuàng)建一個(gè)git倉庫,這種需要初始化新倉庫;還有一種是用clone克隆一個(gè)遠(yuǎn)程倉庫到自己當(dāng)前目錄下,這種適合一群人維護(hù)一個(gè)倉庫,也是常見的方式。

本文只介紹第一種當(dāng)前代碼的管理。

Ubuntu上安裝git

執(zhí)行sudo apt-get install git 進(jìn)行g(shù)it安裝

elf@ubuntu:~/work/example/hello$?sudo apt-get install git

創(chuàng)建版本庫

以下以用git管理/home/elf/work/example/hello/hello.c文件為示例,展示git的安裝和最簡單的流程

(1)git初始化

git初始化新倉庫,執(zhí)行g(shù)it init后會在當(dāng)前目錄生成一個(gè).git目錄

elf@ubuntu:~/work/example/hello$?git init

(2)設(shè)置用戶名和郵箱

每當(dāng)我們在一個(gè)新的git上,首先執(zhí)行g(shù)it config --global user.name "Your Name"創(chuàng)建個(gè)人git賬戶,執(zhí)行g(shù)it config --global user.email 創(chuàng)建賬戶郵箱。

以賬戶名為elf_li,郵箱elf_li@exmple.com為例操作

elf@ubuntu:~/work/example/hello$ git config --global user.name "elf_li"

elf@ubuntu:~/work/example/hello$ git config --global user.email "elf_li@exmple.com"

(3)將當(dāng)前需要跟蹤的文件加到git倉庫(將文件添加到暫存區(qū)域),執(zhí)行g(shù)it add [filename];以添加hello.c到倉庫暫存區(qū)為例

elf@ubuntu:~/work/example/hello$ git add hello.c

(4)提交版本

提交暫存區(qū)域的所有修改到本地倉庫(如果修改文件后未添加到暫存區(qū),將不會被提交),用git status指令(在分支內(nèi)操作時(shí)會做具體的講解)可以看到相關(guān)信息,提示需要提交。

執(zhí)行g(shù)it commit -m “xxx” 進(jìn)行提交

elf@ubuntu:~/work/example/hello$ git commit -m "instial program"

此時(shí)用git status查看,已經(jīng)沒有hello.c的提示了。

(5)查看當(dāng)前提交信息

有過提交操作后,可以使用git log查看提交記錄信息

elf@ubuntu:~/work/example/hello$ git log

完成以上操作,已經(jīng)構(gòu)建了一個(gè)本地資源庫,主要包括以下部分:

內(nèi)容

說明

Directory

使用git管理的目錄,包含工作空間和git管理空間。

即:/home/elf//work/example/hello目錄

workspace

工作區(qū),平時(shí)存放項(xiàng)目代碼的地方

.git

存放git管理信息的目錄,git初始化時(shí)創(chuàng)建

staging

暫存區(qū),用于存放臨時(shí)改動,事實(shí)上它只是一個(gè)文件,保存即將提交到文件列表信息

local repo

本地版本庫,是安全存放數(shù)據(jù)的位置,含有提交的所有版本的數(shù)據(jù)。其中HEAD指向最新放入倉庫的版本。

Stash

隱藏,是一個(gè)工作狀態(tài)保存棧,用于保存/恢復(fù)WorkSpace中的臨時(shí)狀態(tài)

相關(guān)推薦