g4e基础篇#4 了解Git存储库(Repo)
Git 存儲庫看上去就是一個文件夾,只是在這個文件夾中不僅僅保存了所有文件的當(dāng)前版本,也同時保存了所有的歷史記錄,這些額外的信息都保存在當(dāng)前文件夾下面的.git子目錄中。因為前面我們所描述的git跟蹤改動的特殊方式 ,git可以在很小的開銷下保留非常復(fù)雜的歷史記錄,同時也由于這種跟蹤方式,使得git可以通過改變鏈接指向的方式隨時切換當(dāng)前目錄中任何文件的版本,從而實現(xiàn)了在同一套文件系統(tǒng)上切換分支的功能。
雖然git是分布式版本控制系統(tǒng)(DVCS),但是在企業(yè)開發(fā)中,我們?nèi)匀恍枰粋€中心git存儲庫以便不同的團(tuán)隊成員可以更為方便的交換代碼。與集中式(CVCS)的中心存儲庫不同,Git的中心存儲庫與任何開發(fā)人員的本地存儲庫都保留了一致的代碼變更,因此開發(fā)人員不必連接到中心存儲庫就可以完成獲取歷史記錄,拉取分支,合并分支等操作;這給予了每一名開發(fā)人員離線工作的能力,同時允許每個人在本地創(chuàng)建自己的分支結(jié)構(gòu)進(jìn)行嘗試,在開發(fā)人員認(rèn)為本地的分支需要共享給其他人的時候,他們可以將本地分支推送至中心存儲庫,這樣其他開發(fā)人員也可以獲取這些共享的更改。所以,在企業(yè)中使用Git并配合中心存儲庫可以兼顧團(tuán)隊開發(fā)中共享和獨(dú)立開發(fā)的訴求,讓開發(fā)人員具備很高的自由度的同時又不會喪失代碼集中存儲所帶來的優(yōu)勢。
當(dāng)然,開發(fā)人員也可以不通過中心存儲庫共享代碼,但是這種做法在企業(yè)中是不推薦的,雖然在GitHub上這基本上是普遍的工作方式,但是這種工作方式并不適合與企業(yè)開發(fā)。與開源軟件不同的是,大多數(shù)企業(yè)開發(fā)都是多人協(xié)作完成同一個項目,而開源代碼的開發(fā)則更需要每個人具備獨(dú)立的版本根據(jù)自己的需要進(jìn)行定制。
Git存儲庫的基本結(jié)構(gòu)
注:在任何的操作系統(tǒng)中,使用.開頭的目錄都會被默認(rèn)隱藏掉,所以要看這些文件需要打開隱藏文件顯示和擴(kuò)展名顯示才能看到上面的視圖。
.git目錄
git的數(shù)據(jù)目錄,里面保存了git自己管理的數(shù)據(jù)文件,用于實現(xiàn)git的各種功能;刪除這個文件等同于刪除所有g(shù)it歷史記錄,而你的目錄就變成了一個普通的文件目錄。
.gitattributes文件
用來對當(dāng)前目錄中的git的一些行為進(jìn)行配置的文件,它能夠做到很多事情,比如:指定哪些文件是二進(jìn)制的以便git不會對它們進(jìn)行文本比較,指定使用metadata的方式對圖片文件進(jìn)行比較,指定分支間特定文件的合并策略(比如保持master為固定版本,忽略任何合并進(jìn)來的版本),或者在暫存文件的時候調(diào)用某些腳本執(zhí)行一些動作,等等。
詳細(xì)說明:https://git-scm.com/book/en/v2/Customizing-Git-Git-Attributes
.gitignore 文件
這是一個非常重要的配置文件,用來指定哪些文件應(yīng)該被忽略掉。因為我們在開發(fā)中經(jīng)常會創(chuàng)建很多臨時文件,比如:編譯過程的中間文件和最終產(chǎn)生的二進(jìn)制,這些都不應(yīng)該被提交到git倉庫中。因此我們需要根據(jù)不同的技術(shù)棧來配置這個文件以便可以正確的忽略那些不應(yīng)該提交的文件類型。
好在github上已經(jīng)收集了基本所有你會用到的gitignore文件,只要根據(jù)你所使用的技術(shù)棧選擇并放入存儲庫即可:https://github.com/github/gitignore
Git的三級配置系統(tǒng)
以上我們在某個git倉庫中看到的.gitignore和.gitattributes都屬于Git的三級配置系統(tǒng)的一部分,用于對當(dāng)前倉庫進(jìn)行配置,另外兩個級別分別是 global 和 system。 他們的結(jié)構(gòu)如下
system
repo 1
repo 2
…
global
系統(tǒng)級
system 為系統(tǒng)級配置文件,在Windows上存放于Git的安裝目錄下(默認(rèn)位置為C:\Program Files\Git\mingw64\etc\gitconfig)。如果要直接對這個配置進(jìn)行編輯可以使用以下命令
git config --edit --system注:編輯系統(tǒng)級配置的命令行窗口需要提升權(quán)限運(yùn)行,否則無法保存。
用戶級別
global 為當(dāng)前用戶的全局配置文件,在Windows上存放于當(dāng)前用戶的根目錄(默認(rèn)為 C:\Users\{你的用戶名\.gitconfig)。如果要直接對這個配置進(jìn)行編輯可以使用以下命令
git config --edit --global注:你會注意到我們在Git安裝配置那一章中所做的配置實際上就是在修改這個文件。
存儲庫級別
Repo 級別就是當(dāng)前存儲庫的配置文件,存放在當(dāng)前存儲庫的根目錄,編輯時需要先進(jìn)入當(dāng)前存儲庫的目錄,再執(zhí)行以下命令
git config --edit以上我們提到的.gitattribute .gitconfig .gitignore都可以通過這三個級別分別配置,越接近git repo的配置生效級別越高。
有關(guān)gitconfig的更多配置內(nèi)容請參考:FAQ #2
獲取Git配置的庫的兩種方式
新建存儲庫
只需要新建一個目錄,然后在里面執(zhí)行 git init 命令即可完成 git 庫的創(chuàng)建。具體命令操作如下
>> mkdir my-new-repo >>> git init克隆存儲庫
首先從遠(yuǎn)程存儲庫獲取clone地址,然后使用git clone命令即可完成克隆操作。如果遠(yuǎn)程存儲庫是開放的,那么克隆會立即開始;如果遠(yuǎn)程存儲庫是私有的,則要看你之前是否已經(jīng)將賬號信息通過Git Credential Manager存儲,如果沒有則會彈出登陸對話框。類似以下流程:
1. 獲取Git存儲庫地址
如果你已經(jīng)按照之前的安裝配置要求創(chuàng)建了VSTS賬號,你則可以通過?代碼 | 克隆?找到存儲庫的url地址
復(fù)制這個地址,我們就可以進(jìn)行后續(xù)的 clone 操作了。
2. 運(yùn)行 git clone 命令,輸入賬號并完成克隆操作
>>> git clone {遠(yuǎn)程存儲庫url}第一次操作一個陌生的遠(yuǎn)程存儲庫會需要你輸入用戶名和密碼
輸入正確的用戶名和密碼后,克隆會開始,完成以后你就可以開始操作本地git存儲庫了。
小結(jié)
至此,我們已經(jīng)可以獲取一個Git存儲庫了,后面的篇章我們將開始對它進(jìn)行最基本的代碼修改,分支,合并,推送和歷史記錄查看等基本操作。
相關(guān)文章:
g4e基礎(chǔ)篇#1 為什么要使用版本控制系統(tǒng)
g4e基礎(chǔ)篇#2 Git分布式版本控制系統(tǒng)的優(yōu)勢
g4e基礎(chǔ)篇#3 Git安裝與配置
原文地址:http://devopshub.cn/2018/01/13/g4e-basic-04-git-repo/?
.NET社區(qū)新聞,深度好文,歡迎訪問公眾號文章匯總 http://www.csharpkit.com
總結(jié)
以上是生活随笔為你收集整理的g4e基础篇#4 了解Git存储库(Repo)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ABPZero系列教程之拼多多卖家工具
- 下一篇: net的retrofit--WebApi