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

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

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

git是什么?

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

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

為什么要用git?

提到版本控制,總會想起大學(xué)畢業(yè)時寫論文的場景,你電腦上的畢業(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

...

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

多個文件,保留所有版本時,需要為每個版本保存一個文件;

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

容易丟失,被刪除意味著永遠失去;

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

git安裝和初次使用

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

本文只介紹第一種當前代碼的管理。

Ubuntu上安裝git

執(zhí)行sudo apt-get install git 進行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后會在當前目錄生成一個.git目錄

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

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

每當我們在一個新的git上,首先執(zhí)行g(shù)it config --global user.name "Your Name"創(chuàng)建個人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)將當前需要跟蹤的文件加到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)操作時會做具體的講解)可以看到相關(guān)信息,提示需要提交。

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

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

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

(5)查看當前提交信息

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

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

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

內(nèi)容

說明

Directory

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

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

workspace

工作區(qū),平時存放項目代碼的地方

.git

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

staging

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

local repo

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

Stash

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

相關(guān)推薦