偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

詳解Git的基本術(shù)語(yǔ)和命令

譯文
系統(tǒng) Linux 開源
本文向您介紹Git的流程架構(gòu)、關(guān)鍵術(shù)語(yǔ)和基本命令,以幫助您在日常使用Git進(jìn)行版本控制時(shí),實(shí)現(xiàn)更高效的代碼管理。

詳解Git的基本術(shù)語(yǔ)和命令

【51CTO.com快譯】在軟件開發(fā)界,經(jīng)常有這么一種說(shuō)法:“在您想進(jìn)階到高級(jí)水平之前,請(qǐng)先了解和掌握正在使用的軟件工具的各種技術(shù)術(shù)語(yǔ)與操作命令。” 同理,了解Git的工作流、及其關(guān)鍵概念,將有助于您在日常使用Git的版本控制系統(tǒng)時(shí),實(shí)現(xiàn)更高效的代碼管理。

到底Git是什么?

與其他版本控制系統(tǒng)(VCS)一樣,Git可用于跟蹤同一條數(shù)據(jù)信息(或文件類型)的不同版本。

然而,Git之所以能夠從其他VCS中脫穎而出,主要得益于它的分布式本質(zhì),或稱為分布式版本控制系統(tǒng)(distributed version control system,DVCS)。在該環(huán)境中,每個(gè)開發(fā)人員的主機(jī)都充當(dāng)著“節(jié)點(diǎn)(node)”或“集線器(hub)”的角色。

為了維護(hù)數(shù)據(jù)的完整性,Git將每個(gè)文件系統(tǒng)的更改都視為新產(chǎn)生的數(shù)據(jù)。因此,Git的基本框架結(jié)構(gòu)是由各種分支所組成,而用戶的初始項(xiàng)目則位于“主”分支上。此法不但促進(jìn)了有效的功能性開發(fā),還實(shí)現(xiàn)了簡(jiǎn)單的錯(cuò)誤修復(fù)與代碼審查。同時(shí),頻繁的同步工作,可以持續(xù)在對(duì)等的節(jié)點(diǎn)之間進(jìn)行合并等操作。

Git是由Linus Torvalds開發(fā)的,其背后的思想主要體現(xiàn)在“速度”上。“易于分支與合并”、“數(shù)據(jù)完整性”和“更大規(guī)模的協(xié)作”是其三大特點(diǎn)。Git能夠在本地存儲(chǔ)用戶整個(gè)項(xiàng)目的歷史記錄,并允許用戶快速地訪問(wèn)到某個(gè)舊版本的數(shù)據(jù)。

Git的工作流:Git文件的三種狀態(tài)

詳解Git的基本術(shù)語(yǔ)和命令

眾所周知,許多VCS都用到了雙層體系結(jié)構(gòu):存儲(chǔ)庫(kù)和工作副本。但是,Git選用的卻是三層結(jié)構(gòu):工作目錄、暫存區(qū)和本地存儲(chǔ)庫(kù)。因此,對(duì)于同一段代碼,Git通過(guò)三個(gè)層面,提供了以不同時(shí)間間隔和版本來(lái)保存當(dāng)前工作的方式。

同時(shí),Git利用三個(gè)階段,在每個(gè)層面上存儲(chǔ)相同代碼(或?qū)ο?的不同(也可以是相同)狀態(tài)。

***,在初始化(或?yàn)榭寺?階段,Git項(xiàng)目會(huì)在本地計(jì)算機(jī)上創(chuàng)建一個(gè)“工作目錄”,以便用戶開始編輯源代碼。

在源代碼的***階段,您既可以自由地修改文件和目錄,又能夠選擇您喜歡的編輯器來(lái)添加、刪除、移動(dòng)、重命名或復(fù)制它們。當(dāng)然,我更喜歡使用vim,這一最有效和***大的文本編輯器(請(qǐng)?jiān)斠?jiàn)https://www.vim.org/)。

一旦您完成了本次編輯,就可以使用“Git add”命令來(lái)暫存自己的修改,即:在“暫存區(qū)域”中進(jìn)行“索引”,并顯示下一步將要提交的內(nèi)容預(yù)覽。

接著,當(dāng)***組代碼已被暫存到Staging區(qū)域中之后,您就可以在工作目錄中進(jìn)行更多的編輯了。在此,工作目錄和暫存區(qū)域?qū)⒕哂挟?dāng)前項(xiàng)目的不同快照(或稱版本)。

為了同步上述兩個(gè)階段,您只需通過(guò)Git add來(lái)暫存自己在工作目錄中的***修改便可。

除了添加代碼的更改,如果您想撤消索引中的任何變更暫存的話,則需要執(zhí)行不同的Git命令。

而如果您在此階段并不需要進(jìn)行任何更改,那么就可以通過(guò)“Git commit”,來(lái)通過(guò)提交的方式,將代碼移動(dòng)并存儲(chǔ)在本地的Git存儲(chǔ)庫(kù)之中。

也就是說(shuō),提交命令可以確保在上述所有三個(gè)階段中的項(xiàng)目都具有相同的快照,并讓Git的三個(gè)階段彼此保持同步。

另外,“Git status”命令可以顯示當(dāng)前的工作樹狀態(tài)、以及您的文件所處的階段。

Git的關(guān)鍵術(shù)語(yǔ)與命令

您可能以前使用過(guò)一些比較流行的VCS,它們包括:CVS(并發(fā)版本控制系統(tǒng),http://savannah.nongnu.org/projects/cvs),SVN(Apache SubVersioN,https://subversion.apache.org/),ClearCase(https://www.ibm.com/us-en/marketplace/rational-clearcase)和BitKeeper(http://www.bitkeeper.org/)等。雖然Git也是一種VCS,但是它使用了自己的文件系統(tǒng)架構(gòu)來(lái)處理源代碼。因此,與各種早期VCS相比,Git有著自己的一些術(shù)語(yǔ)、以及命令方法。

存儲(chǔ)庫(kù)

它使用計(jì)算機(jī)上的某個(gè)本地位置,來(lái)存儲(chǔ)項(xiàng)目的整個(gè)快照,以保證每一個(gè)微小的改動(dòng)都能夠被存儲(chǔ)與檢索。用戶可以輕松查看和檢索存儲(chǔ)庫(kù)的日志。也就是說(shuō),您可以跳轉(zhuǎn)到代碼的任何一個(gè)舊的狀態(tài)。

工作目錄

它為項(xiàng)目的***代碼提供了本地工作的副本。

索引(暫存區(qū),緩存)

索引可以理解為用戶下一次提交的快照。一旦您通過(guò)Git add在工作目錄中暫存或添加了代碼,那么代碼就會(huì)被移動(dòng)至此。就像內(nèi)存中的緩存一樣,暫存區(qū)充當(dāng)了工作目錄(代碼的開發(fā)位置)與本地存儲(chǔ)庫(kù)(代碼的存放位置)之間的中間層。在該層中,您可以快速預(yù)覽即將提交的項(xiàng)目快照。當(dāng)然,您仍然可以在索引中編輯(添加、修改或刪除)代碼。而且,您還可以在此處還原項(xiàng)目的舊版本(或狀態(tài))。

提交

提交是項(xiàng)目的***快照(狀態(tài))。如下圖所示,每一次提交都會(huì)被分配一個(gè)唯一的提交ID。而且所有的提交日志都被存儲(chǔ)在本地的存儲(chǔ)庫(kù)中。

詳解Git的基本術(shù)語(yǔ)和命令

作為一個(gè)Git對(duì)象,提交會(huì)存儲(chǔ)各種屬性,其中包括:提交ID、作者姓名、創(chuàng)作日期和提交消息(標(biāo)題和正文)。

git hash(或稱SHA-1)

上面提到的唯一性“提交ID”,一般被稱為“git hash”或“SHA-1”(請(qǐng)參見(jiàn)https://en.wikipedia.org/wiki/SHA-1)。通常情況下,每一個(gè)文件系統(tǒng)的修改(添加、刪除、編輯、移動(dòng)、復(fù)制、重命名、以及文件權(quán)限等)都會(huì)被視為一個(gè)文件。同時(shí),其內(nèi)容將被轉(zhuǎn)換為唯一的SHA-1代碼。上圖所示的提交ID為:8db083e7df7c9241e640b66c89c6f02649ac885a。在實(shí)際使用中,一般參考的是其前7位唯一數(shù),即8db083e。

當(dāng)然,您不必記住整個(gè)哈希ID(下面我們將要提到),Git會(huì)使用一種諸如分支和標(biāo)記之類的引用,來(lái)處置這些提交ID(哈希)。

分支

分支是某個(gè)獨(dú)立的開發(fā)“平行線”。通過(guò)分支,您可以在隔離的工作區(qū)中處理同一段代碼。由于每一個(gè)分支都有自己的項(xiàng)目歷史副本,因此您可以在分支上根據(jù)自己的代碼進(jìn)行開發(fā),并方便地進(jìn)行相互合并。

主分支

當(dāng)某個(gè)項(xiàng)目***被創(chuàng)建為Git項(xiàng)目時(shí),主分支就是其主要的本地默認(rèn)分支。

HEAD

HEAD是每個(gè)分支上***提交的快照。每個(gè)分支都有提交ID,如前面所說(shuō),它是SHA-1的短名稱、或是指針的引用。HEAD始終指向分支的***提交(代碼),并在每次提交時(shí)自動(dòng)進(jìn)行向前移動(dòng),以指向***的提交ID。

此外,當(dāng)某個(gè)分支指向較舊的提交、而不是***的提交時(shí),就會(huì)出現(xiàn)“detached HEAD”的概念。

可見(jiàn),一旦擁有了***提交ID的引用“HEAD”,我們的確不必再去記憶那個(gè)最近工作過(guò)的提交ID了。

checkout

該命令會(huì)切換到指定的分支,并顯示當(dāng)前項(xiàng)目的狀態(tài)。同時(shí),它還能夠恢復(fù)以前工作過(guò)的樹文件。

克隆

克隆是遠(yuǎn)程存儲(chǔ)庫(kù)的工作副本。“git clone”命令能夠下載遠(yuǎn)程存儲(chǔ)庫(kù),并在本地計(jì)算機(jī)上創(chuàng)建工作目錄。

此外,該命令還可以存儲(chǔ)那些從本地存儲(chǔ)庫(kù),到遠(yuǎn)程存儲(chǔ)庫(kù)的各種遠(yuǎn)程處理程序、或指針引用。

詳解Git的基本術(shù)語(yǔ)和命令

上圖顯示了一個(gè)名為“learn_branching”的本地存儲(chǔ)庫(kù),它使用URL:https://github.com/divyabhushan/learn_branching.git,來(lái)跟蹤名為“origin”的遠(yuǎn)程存儲(chǔ)庫(kù)。

結(jié)論

希望上面所提及的基本概念,能夠讓您更好地理解使用Git的各種有效方法。當(dāng)然,Git還包含了更多的概念與實(shí)用命令,您可以通過(guò)“git help -a”,來(lái)拉出全量的命令列表,并通過(guò)“git help ”,來(lái)對(duì)某個(gè)命令進(jìn)行深入了解。

原文標(biāo)題:Git: Basic Terms and Commands Explained,作者:Divya Bhushan

【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】

 

責(zé)任編輯:龐桂玉 來(lái)源: 51CTO
相關(guān)推薦

2012-03-19 10:41:15

JavaSocket

2021-01-27 05:44:00

Consul術(shù)語(yǔ)命令

2013-05-27 14:05:16

2020-10-27 07:31:35

GitGit RevertGit Reset

2015-07-28 10:21:23

git命令

2009-07-31 16:14:27

linux cd命令Linux基本命令

2023-12-08 11:05:00

GitLinux

2021-12-07 22:07:26

數(shù)據(jù)治理元管理

2010-01-06 11:24:27

Linux命令

2010-09-13 13:27:25

CSS濾鏡

2023-09-13 14:47:34

性能測(cè)試開發(fā)

2011-04-14 11:28:07

光纖

2010-06-02 14:28:23

SVN版本控制

2010-07-20 09:05:08

Perl類

2015-06-08 16:42:52

linux運(yùn)維

2010-06-30 10:39:45

Linux SNMP

2010-03-08 16:55:32

Linux chgrpchown命令

2020-11-05 11:50:48

Git命令Linux

2025-04-09 10:58:43

2009-04-14 09:35:33

.NETCLR術(shù)語(yǔ)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)