日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

git学习——Git 基础要点【转】

發(fā)布時間:2025/7/14 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 git学习——Git 基础要点【转】 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

轉(zhuǎn)自:http://blog.csdn.net/zeroboundary/article/details/10549555

簡單地說,Git 究竟是怎樣的一個系統(tǒng)呢?請注意,接下來的內(nèi)容非常重要,若是理解了 Git 的思想和基本的工作原理,用起來就會知其所以然,游刃有余。在開始學(xué)習(xí) Git 的時候,請不要嘗試把各種概念和其他的版本控制系統(tǒng)諸如 Subversion 和 Perforce 等相比擬,否則容易混淆每個操作的實際意義。Git 在保存和處理各種信息的時候,雖然操作起來的命令形式非常相近,但它與其他版本控制系統(tǒng)的做法頗為不同。理解這些差異將有助于你準(zhǔn)確地使用 Git 提供的各種工具。

直接快照,而非比較差異

Git 和其他版本控制系統(tǒng)的主要差別在于,Git 只關(guān)心文件數(shù)據(jù)的整體是否發(fā)生變化,而大多數(shù)其他系統(tǒng)則只關(guān)心文件內(nèi)容的具體差異。這類系統(tǒng)(CVS,Subversion,Perforce,Bazaar 等等)每次記錄有哪些文件作了更新,以及都更新了哪些行的什么內(nèi)容,請看圖 1-4。

Git 并不保存這些前后變化的差異數(shù)據(jù)。實際上,Git 更像是把變化的文件作快照后,記錄在一個微型的文件系統(tǒng)中。每次提交更新時,它會縱覽一遍所有文件的指紋信息并對文件作一快照,然后保存一個指向這次快照的索引。為提高性能,若文件沒有變化,Git 不會再次保存,而只對上次保存的快照作一連接。Git 的工作方式就像圖 1-5 所示。

這是 Git 同其他系統(tǒng)的重要區(qū)別。它完全顛覆了傳統(tǒng)版本控制的套路,并對各個環(huán)節(jié)的實現(xiàn)方式作了新的設(shè)計。Git 更像是個小型的文件系統(tǒng),但它同時還提供了許多以此為基礎(chǔ)的超強工具,而不只是一個簡單的 VCS。稍后在第三章討論 Git 分支管理的時候,我們會再看看這樣的設(shè)計究竟會帶來哪些好處。

近乎所有操作都可本地執(zhí)行

在 Git 中的絕大多數(shù)操作都只需要訪問本地文件和資源,不用連網(wǎng)。但如果用 CVCS 的話,差不多所有操作都需要連接網(wǎng)絡(luò)。因為 Git 在本地磁盤上就保存著所有有關(guān)當(dāng)前項目的歷史更新,所以處理起來速度飛快。

舉個例子,如果要瀏覽項目的歷史更新摘要,Git 不用跑到外面的服務(wù)器上去取數(shù)據(jù)回來,而直接從本地數(shù)據(jù)庫讀取后展示給你看。所以任何時候你都可以馬上翻閱,無需等待。如果想要看當(dāng)前版本的文件和一個月前的版本之間有何差異,Git 會取出一個月前的快照和當(dāng)前文件作一次差異運算,而不用請求遠(yuǎn)程服務(wù)器來做這件事,或是把老版本的文件拉到本地來作比較。

用 CVCS 的話,沒有網(wǎng)絡(luò)或者斷開 VPN 你就無法做任何事情。但用 Git 的話,就算你在飛機或者火車上,都可以非常愉快地頻繁提交更新,等到了有網(wǎng)絡(luò)的時候再上傳到遠(yuǎn)程的鏡像倉庫。同樣,在回家的路上,不用連接 VPN 你也可以繼續(xù)工作。換作其他版本控制系統(tǒng),這么做幾乎不可能,抑或非常麻煩。比如 Perforce,如果不連到服務(wù)器,幾乎什么都做不了(譯注:實際上手工修改文件權(quán)限改為可寫之后是可以編輯文件的,只是其他開發(fā)者無法通過 Perforce 知道你正在對此文件進(jìn)行修改。);如果是 Subversion 或 CVS,雖然可以編輯文件,但無法提交更新,因為數(shù)據(jù)庫在網(wǎng)絡(luò)上。看上去好像這些都不是什么大問題,但在實際體驗過之后,你就會驚喜地發(fā)現(xiàn),這其實是會帶來很大不同的。

時刻保持?jǐn)?shù)據(jù)完整性

在保存到 Git 之前,所有數(shù)據(jù)都要進(jìn)行內(nèi)容的校驗和(checksum)計算,并將此結(jié)果作為數(shù)據(jù)的唯一標(biāo)識和索引。換句話說,不可能在你修改了文件或目錄之后,Git 一無所知。這項特性作為 Git 的設(shè)計哲學(xué),建在整體架構(gòu)的最底層。所以如果文件在傳輸時變得不完整,或者磁盤損壞導(dǎo)致文件數(shù)據(jù)缺失,Git 都能立即察覺。

Git 使用 SHA-1 算法計算數(shù)據(jù)的校驗和,通過對文件的內(nèi)容或目錄的結(jié)構(gòu)計算出一個 SHA-1 哈希值,作為指紋字符串。該字串由 40 個十六進(jìn)制字符(0-9 及 a-f)組成,看起來就像是:

24b9da6552252987aa493b52f8696cd6d3b00373

Git 的工作完全依賴于這類指紋字串,所以你會經(jīng)常看到這樣的哈希值。實際上,所有保存在 Git 數(shù)據(jù)庫中的東西都是用此哈希值來作索引的,而不是靠文件名。

多數(shù)操作僅添加數(shù)據(jù)

常用的 Git 操作大多僅僅是把數(shù)據(jù)添加到數(shù)據(jù)庫。因為任何一種不可逆的操作,比如刪除數(shù)據(jù),要回退或重現(xiàn)都會非常困難。在別的 VCS 中,若還未提交更新,就有可能丟失或者混淆一些修改的內(nèi)容,但在 Git 里,一旦提交快照之后就完全不用擔(dān)心丟失數(shù)據(jù),特別是在養(yǎng)成了定期推送至其他鏡像倉庫的習(xí)慣的話。

這種高可靠性令我們的開發(fā)工作安心不少,盡管去做各種試驗性的嘗試好了,再怎樣也不會弄丟數(shù)據(jù)。至于 Git 內(nèi)部究竟是如何保存和恢復(fù)數(shù)據(jù)的,我們會在第九章的“幕后細(xì)節(jié)”部分再作詳述。

三種狀態(tài)

好,現(xiàn)在請注意,接下來要講的概念非常重要。對于任何一個文件,在 Git 內(nèi)都只有三種狀態(tài):已提交(committed),已修改(modified)和已暫存(staged)。已提交表示該文件已經(jīng)被安全地保存在本地數(shù)據(jù)庫中了;已修改表示修改了某個文件,但還沒有提交保存;已暫存表示把已修改的文件放在下次提交時要保存的清單中。

由此我們看到 Git 管理項目時,文件流轉(zhuǎn)的三個工作區(qū)域:Git 的本地數(shù)據(jù)目錄,工作目錄以及暫存區(qū)域。

每個項目都有一個 git 目錄,它是 Git 用來保存元數(shù)據(jù)和對象數(shù)據(jù)庫的地方。該目錄非常重要,每次克隆鏡像倉庫的時候,實際拷貝的就是這個目錄里面的數(shù)據(jù)。

從項目中取出某個版本的所有文件和目錄,用以開始后續(xù)工作的叫做工作目錄。這些文件實際上都是從 git 目錄中的壓縮對象數(shù)據(jù)庫中提取出來的,接下來就可以在工作目錄中對這些文件進(jìn)行編輯。

所謂的暫存區(qū)域只不過是個簡單的文件,一般都放在 git 目錄中。有時候人們會把這個文件叫做索引文件,不過標(biāo)準(zhǔn)說法還是叫暫存區(qū)域。

基本的 Git 工作流程如下所示:

  • 在工作目錄中修改某些文件。
  • 對這些修改了的文件作快照,并保存到暫存區(qū)域。
  • 提交更新,將保存在暫存區(qū)域的文件快照轉(zhuǎn)儲到 git 目錄中。
  • 所以,我們可以從文件所處的位置來判斷狀態(tài):如果是 git 目錄中保存著的特定版本文件,就屬于已提交狀態(tài);如果作了修改并已放入暫存區(qū)域,就屬于已暫存狀態(tài);如果自上次取出后,作了修改但還沒有放到暫存區(qū)域,就是已修改狀態(tài)。到第二章的時候,我們會進(jìn)一步了解個中細(xì)節(jié),并學(xué)會如何善用這些狀態(tài),以及如何跳過暫存環(huán)節(jié)。

    總結(jié)

    以上是生活随笔為你收集整理的git学习——Git 基础要点【转】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 97免费看| 欧美精品v | 亚洲天堂激情 | 欧美日韩首页 | 国产欧美日本 | 亚洲码无人客一区二区三区 | 日本va欧美va精品发布 | 亚洲一区有码 | 日日爽日日操 | 欧美.com | 国产精品久久国产精品 | 五月天啪啪| 观看av | 国产精品视频全国免费观看 | 一区二区三区www污污污网站 | 天堂中文视频 | 国产精品毛片一区二区在线看舒淇 | 开心激情五月婷婷 | 色综合久久久 | 日本h片在线观看 | 亚洲精品成人片在线观看精品字幕 | 中文字幕有码在线观看 | 手机看片91 | 香蕉视频黄污 | 动漫美女露胸网站 | 欧美黄色免费观看 | 超碰夫妻 | 日本a v网站| 成人av手机在线观看 | 精品欧美色视频网站在线观看 | 日韩成人在线免费观看 | 日韩在线视频精品 | avtt2015| 人碰人操| 久久美女av | 久久精品999 | 日韩精品在线一区二区三区 | 日韩一区二区三区视频 | 天天干夜夜欢 | 天天天干干干 | 18xxxx日本 | 国产亚洲精品一区二区三区 | 亚洲爽爽网 | a在线观看| 免费毛片网站在线观看 | 99国产精品99久久久久久 | 波多野结衣国产在线 | 99久久精品国产色欲 | 亚洲黄网在线 | 久草最新网址 | 人人艹在线 | 国产毛片毛片毛片 | 欧美日韩激情在线 | 国产一区h| 91国产免费看 | 欧美激情国产精品免费 | 国产成人专区 | 成人免费黄色网址 | 欧美在线色图 | 天天做天天摸天天爽天天爱 | 奇米一区二区三区 | 成人国产欧美 | 4444亚洲人成无码网在线观看 | 伊人激情综合网 | 99久久精品无码一区二区毛片 | 国产嫩草在线观看 | 免费在线观看不卡av | 亚洲中文无码久久 | 一级黄色影院 | 欧美日韩成人免费 | 欧美熟妇精品黑人巨大一二三区 | 国产精品一区二区三区在线免费观看 | 麻豆传媒网址 | 无码国产精品久久一区免费 | 高清免费av| 超碰蜜臀 | 国产精品乱码一区二区三区 | 日韩欧美亚洲国产精品字幕久久久 | china国产乱xxxxx绿帽 | 无码人妻精品一区二区三区66 | 日本黄图 | 99免费在线观看视频 | av黄色网 | 国产11页 | 国产精品男女 | 欧美日韩精品一二三区 | 亚洲性综合 | 91av观看 | 国产精品无码一区二区三区 | 91久久久久国产一区二区 | 91精品国产色综合久久不8 | 国产精品久久久久蜜臀 | 精品一区二区欧美 | 91色拍 | 国产美女精品一区二区三区 | 91免费版在线 | 嘿咻视频在线观看 | 成人av教育 | 欧美精品电影一区二区 |