這篇文章給大家介紹如何理解Git工作流,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。
成都創(chuàng)新互聯(lián)于2013年創(chuàng)立,先為從化等服務(wù)建站,從化等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為從化企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。
寫(xiě)在前面的話:
Linus作為造物主,不光創(chuàng)造了Linux,對(duì)于軟件業(yè)另一個(gè)NB的貢獻(xiàn)是花了兩周的時(shí)間設(shè)計(jì)開(kāi)發(fā)了Git。最近看了Linus在Google關(guān)于Git的演講,對(duì)于Git的誕生背景與使用方式有了深刻的認(rèn)識(shí)。Linus自身對(duì)于代碼管理系統(tǒng),考慮的3個(gè)點(diǎn):
1. 分布式。能滿足全球化開(kāi)發(fā)的使用場(chǎng)景,可以離線開(kāi)發(fā),無(wú)論是否聯(lián)網(wǎng)。
2. 性能。處理更多的提交,處理更大的代碼庫(kù)。
3. 提交進(jìn)去的內(nèi)容,與取出來(lái)的內(nèi)容完全一致,沒(méi)有任何改動(dòng)。
在整個(gè)演講過(guò)程,Linus介紹了自己如何維護(hù)Linux內(nèi)核22000個(gè)模塊的代碼,那就是忽視來(lái)自去全球99.99%的pull request。Linus作為造物主,只關(guān)注全球10~15個(gè)神級(jí)人物的pull request,其他99.99%的pull request是從來(lái)不看的。因?yàn)樵煳镏髦缓蜕翊蚪坏溃缓喜⑸竦膒ull request;神再去合并魔、道、仙的pull request;魔、道、仙再去合并優(yōu)秀的、不優(yōu)秀的、眾生的、低能的pull request(Linus在Google做演講現(xiàn)場(chǎng),依然是藐視眾生的態(tài)度,毫不避諱的說(shuō)Google大部分人都是低能兒,好吧,那我們是啥)。頓時(shí)開(kāi)悟,原來(lái)Git的設(shè)計(jì)理念,與Linus本身的工作環(huán)境和使用場(chǎng)景有密切關(guān)系。
VSS,哦,no,不要臟了我的嘴。
CVS,哦,no,愚蠢、低能、低效、邪惡的化身。
SVN,哦,no,口號(hào)是做最好用的CVS,從一開(kāi)始的定位就落入俗套,不可救藥。
--Linus
下面是轉(zhuǎn)載的一篇關(guān)于Git的快速入門(mén)。
-------------------------------------------------------------------------------------------------------------------------------
如果你有Subversion、CVS或其它版本管理工具的背景知識(shí),不好意思,請(qǐng)先忘記你已經(jīng)熟悉的關(guān)于版本控制的一切內(nèi)容。
Git有一個(gè)完全不同的版本控制方法,來(lái)讓我們看它和其它系統(tǒng)的區(qū)別。
Git是分布式的,這表示,我們克隆Git倉(cāng)庫(kù)時(shí),將獲得該倉(cāng)庫(kù)的副本,以便在本地電腦中使用。在Git中,你有屬于自己的代碼庫(kù),可以自由更改,根據(jù)自己的需要多次提交,而無(wú)需擔(dān)心污染中央存儲(chǔ)庫(kù),當(dāng)確信無(wú)誤后再將代碼推送到中央存儲(chǔ)庫(kù)。
在深入Git技術(shù)之前,我們來(lái)看一個(gè)非常清晰的Git工作流程圖(感謝作者,我還在桌面上打印了它)

來(lái)看上面的圖:在Git中,代碼存放在4個(gè)不同的位置。
1、遠(yuǎn)端存儲(chǔ)庫(kù)
這是Git遠(yuǎn)端存儲(chǔ)庫(kù)-Remote repository,或者公司托管的云端服務(wù)器。顧名思義,這個(gè)代碼庫(kù)不保存你的本地計(jì)算機(jī)中,你也不會(huì)經(jīng)常與遠(yuǎn)端存儲(chǔ)庫(kù)通信。只會(huì)在代碼更改后推送(push)時(shí)用得著。
2、本地存儲(chǔ)庫(kù)
本地存儲(chǔ)庫(kù)-Local repository,是指當(dāng)你克隆Git倉(cāng)庫(kù)或創(chuàng)建新的倉(cāng)庫(kù)時(shí),在本地創(chuàng)建并存儲(chǔ)的的代碼庫(kù)。
你做的所有一切事情,都首先來(lái)源于此,因?yàn)楸镜卮鎯?chǔ)庫(kù)保存在你的本地計(jì)算機(jī)中。
3、索引
索引 - Index。我想這是在Git中最令人困惑的名詞之一。這個(gè)東東是在代碼的工作副本以及本地存儲(chǔ)庫(kù)之間的中間位置。
它有點(diǎn)像代碼的臨時(shí)區(qū)域,可以用它來(lái)暫存跟蹤要提交的文件。在后面的內(nèi)容中,我會(huì)介紹我的git工作流,會(huì)講到怎么使用索引。這段代碼也是保存在本地計(jì)算機(jī)中的。
4、工作區(qū)
工作區(qū) - workspace。此處是你創(chuàng)建/編輯/刪除文件所在的工作目錄,這些代碼文件是存儲(chǔ)在你的本地計(jì)算中的。
以上的內(nèi)容,希望能給大家得到Git的基本概念。這些對(duì)于使用Git來(lái)說(shuō)非常重要。接下來(lái),我將介紹關(guān)于我的Git工作流的相關(guān)文章。在此間,你可以隨時(shí)設(shè)置你的Git環(huán)境。
正像我們前面所說(shuō)的那樣,我們繼續(xù)分享在日常工作中使用Git的常用方法。
假設(shè)你已經(jīng)在本地計(jì)算機(jī)中安裝了Git,并且在PATH中設(shè)置了環(huán)境變量。另外,我們用本地存儲(chǔ)庫(kù)來(lái)解釋相關(guān)概念,這意味著我們將在本地創(chuàng)建存儲(chǔ)庫(kù),而不是從遠(yuǎn)端存儲(chǔ)庫(kù)中克隆它。
1、創(chuàng)建Git存儲(chǔ)庫(kù)
打開(kāi)你喜歡的終端工具、命令提示符,用cd命令進(jìn)入該目錄。然后使用如下的命令:
c:\> cd vraa\projects\helloworld
C:\vraa\projects\helloworld>git init
Initialized empty Git repository in C:/vraa/projects/helloworld/.git/
上面的英文告訴我,已經(jīng)創(chuàng)建了一個(gè)新的本地存儲(chǔ)庫(kù),并且可以跟蹤自己的hello world項(xiàng)目了。
2、Git配置:用戶名與密碼
下一件事是要設(shè)置一個(gè)用戶名和郵箱來(lái)用于我的Git提交(commits),
這是每次Git安裝后的一次性設(shè)置。
C:\vraa\projects\helloworld> git config --global user.name "yourname"
C:\vraa\projects\helloworld> git config --global user.email "your@mail.com"
3、將文件添加到Git索引并檢查其狀態(tài)
在此步驟,我們將創(chuàng)建一個(gè)簡(jiǎn)單的文本文件,并使用git status命令來(lái)查看Git對(duì)該文件的影響,該命令會(huì)告訴你存儲(chǔ)庫(kù)的當(dāng)前狀態(tài)和分支的詳細(xì)信息。
值得說(shuō)明的是,在Git中不會(huì)去檢查任何你的工作。只需要直接修改文件,然后提交你的更改。
命令如下:
C:\vraa\projects\helloworld> edit helloworld.txt
C:\vraa\projects\helloworld> git status
# On branch master
#
# Initial commit
#
# Untracked files:
# (use "git add ..." to include in what will be committed)
#
# helloworld.txt
nothing added to commit but untracked files present (use "git add" to track)
哈哈,Git知道有一個(gè)文件,但還沒(méi)有跟蹤它。好的,我們告訴Git來(lái)跟蹤它,這才是Git的真正用途。
C:\vraa\projects\helloworld> git add .\helloworld.txt
C:\vraa\projects\helloworld> git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
# (use "git rm --cached ..." to unstage)
#
# new file: helloworld.txt
現(xiàn)在,我們使用git status命令,它會(huì)告訴你已經(jīng)提交的文件列表。所以,當(dāng)我們使用git add [文件名]時(shí),我們要求git將文件保存在git索引中跟蹤其更改。這個(gè)很簡(jiǎn)單,可以將此文件暫存于此,等到下次提交時(shí),將索引中的所有文件一起提交。
3、提交更改
通過(guò)提交命令,我們將更改的文件從索引中移動(dòng)到本地存儲(chǔ)庫(kù)。這點(diǎn)與Subversion不同,提交意味著將代碼保存到中央存儲(chǔ)庫(kù)。
在Git中,即使提交后,代碼也會(huì)駐留在本地存儲(chǔ)庫(kù)中,外界不會(huì)知道你的改變。因此,我們可以無(wú)所畏懼的做任意多次的提交。
C:\vraa\projects\helloworld> git commit -m "initial commit"
[master (root-commit) 812befb] initial commit
warning: CRLF will be replaced by LF in helloworld.txt.
The file will have its original line endings in your working directory.
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 100644 helloworld.txt
C:\vraa\projects\helloworld> git status
# On branch master
nothing to commit (working directory clean)
以上,就是git工作流的基本流程。使用Git可以創(chuàng)建非常簡(jiǎn)單的提交與跟蹤更改
關(guān)于如何理解Git工作流就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。
當(dāng)前名稱:如何理解Git工作流
URL網(wǎng)址:http://chinadenli.net/article44/jgghhe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、標(biāo)簽優(yōu)化、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站策劃、域名注冊(cè)、面包屑導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)