1. 程式人生 > >g4e基礎篇#4 了解Git存儲庫(Repo)

g4e基礎篇#4 了解Git存儲庫(Repo)

存在 pull release .cn gitignore evel load file 鏈接

章節目錄

前言

1. 基礎篇:

  • 為什麽要使用版本控制系統
  • Git 分布式版本控制系統的優勢
  • Git 安裝和設置
  • 了解Git存儲庫(Repo)
  • 起步 1 – 創建分支和保存代碼
  • 起步 2 – 了解Git歷史記錄
  • 起步 3 – 拉取請求 Pull Request 工作機制

Git 存儲庫看上去就是一個文件夾,只是在這個文件夾中不僅僅保存了所有文件的當前版本,也同時保存了所有的歷史記錄,這些額外的信息都保存在當前文件夾下面的.git子目錄中。因為前面我們所描述的git跟蹤改動的特殊方式 ,git可以在很小的開銷下保留非常復雜的歷史記錄,同時也由於這種跟蹤方式,使得git可以通過改變鏈接指向的方式隨時切換當前目錄中任何文件的版本,從而實現了在同一套文件系統上切換分支的功能。

雖然git是分布式版本控制系統(DVCS),但是在企業開發中,我們仍然需要一個中心git存儲庫以便不同的團隊成員可以更為方便的交換代碼。與集中式(CVCS)的中心存儲庫不同,Git的中心存儲庫與任何開發人員的本地存儲庫都保留了一致的代碼變更,因此開發人員不必連接到中心存儲庫就可以完成獲取歷史記錄,拉取分支,合並分支等操作;這給予了每一名開發人員離線工作的能力,同時允許每個人在本地創建自己的分支結構進行嘗試,在開發人員認為本地的分支需要共享給其他人的時候,他們可以將本地分支推送至中心存儲庫,這樣其他開發人員也可以獲取這些共享的更改。所以,在企業中使用Git並配合中心存儲庫可以兼顧團隊開發中共享和獨立開發的訴求,讓開發人員具備很高的自由度的同時又不會喪失代碼集中存儲所帶來的優勢。

技術分享圖片

當然,開發人員也可以不通過中心存儲庫共享代碼,但是這種做法在企業中是不推薦的,雖然在GitHub上這基本上是普遍的工作方式,但是這種工作方式並不適合與企業開發。與開源軟件不同的是,大多數企業開發都是多人協作完成同一個項目,而開源代碼的開發則更需要每個人具備獨立的版本根據自己的需要進行定制。

Git存儲庫的基本結構

技術分享圖片

註:在任何的操作系統中,使用.開頭的目錄都會被默認隱藏掉,所以要看這些文件需要打開隱藏文件顯示和擴展名顯示才能看到上面的視圖。

.git目錄

git的數據目錄,裏面保存了git自己管理的數據文件,用於實現git的各種功能;刪除這個文件等同於刪除所有git歷史記錄,而你的目錄就變成了一個普通的文件目錄。

.gitattributes文件

用來對當前目錄中的git的一些行為進行配置的文件,它能夠做到很多事情,比如:指定哪些文件是二進制的以便git不會對它們進行文本比較,指定使用metadata的方式對圖片文件進行比較,指定分支間特定文件的合並策略(比如保持master為固定版本,忽略任何合並進來的版本),或者在暫存文件的時候調用某些腳本執行一些動作,等等。

詳細說明:https://git-scm.com/book/en/v2/Customizing-Git-Git-Attributes

.gitignore 文件

這是一個非常重要的配置文件,用來指定哪些文件應該被忽略掉。因為我們在開發中經常會創建很多臨時文件,比如:編譯過程的中間文件和最終產生的二進制,這些都不應該被提交到git倉庫中。因此我們需要根據不同的技術棧來配置這個文件以便可以正確的忽略那些不應該提交的文件類型。

好在github上已經收集了基本所有你會用到的gitignore文件,只要根據你所使用的技術棧選擇並放入存儲庫即可:https://github.com/github/gitignore

Git的三級配置系統

以上我們在某個git倉庫中看到的.gitignore和.gitattributes都屬於Git的三級配置系統的一部分,用於對當前倉庫進行配置,另外兩個級別分別是 global 和 system。 他們的結構如下

  • system
    • global
      • repo 1
      • repo 2

系統級

system 為系統級配置文件,在Windows上存放於Git的安裝目錄下(默認位置為C:\Program Files\Git\mingw64\etc\gitconfig)。如果要直接對這個配置進行編輯可以使用以下命令

git config --edit --system

技術分享圖片

註:編輯系統級配置的命令行窗口需要提升權限運行,否則無法保存。

用戶級別

global 為當前用戶的全局配置文件,在Windows上存放於當前用戶的根目錄(默認為 C:\Users\{你的用戶名\.gitconfig)。如果要直接對這個配置進行編輯可以使用以下命令

git config --edit --global

技術分享圖片

註:你會註意到我們在Git安裝配置那一章中所做的配置實際上就是在修改這個文件。

存儲庫級別

Repo 級別就是當前存儲庫的配置文件,存放在當前存儲庫的根目錄,編輯時需要先進入當前存儲庫的目錄,再執行以下命令

git config --edit

技術分享圖片

以上我們提到的.gitattribute .gitconfig .gitignore都可以通過這三個級別分別配置,越接近git repo的配置生效級別越高。

有關gitconfig的更多配置內容請參考:FAQ #2

獲取Git配置的庫的兩種方式

新建存儲庫

只需要新建一個目錄,然後在裏面執行 git init 命令即可完成 git 庫的創建。具體命令操作如下

>> mkdir my-new-repo
>>> git init

技術分享圖片

克隆存儲庫

首先從遠程存儲庫獲取clone地址,然後使用git clone命令即可完成克隆操作。如果遠程存儲庫是開放的,那麽克隆會立即開始;如果遠程存儲庫是私有的,則要看你之前是否已經將賬號信息通過Git Credential Manager存儲,如果沒有則會彈出登陸對話框。類似以下流程:

1. 獲取Git存儲庫地址

如果你已經按照之前的安裝配置要求創建了VSTS賬號,你則可以通過 代碼 | 克隆 找到存儲庫的url地址

技術分享圖片

復制這個地址,我們就可以進行後續的 clone 操作了。

2. 運行 git clone 命令,輸入賬號並完成克隆操作

>>> git clone {遠程存儲庫url}

第一次操作一個陌生的遠程存儲庫會需要你輸入用戶名和密碼

技術分享圖片

輸入正確的用戶名和密碼後,克隆會開始,完成以後你就可以開始操作本地git存儲庫了。

技術分享圖片

小結

至此,我們已經可以獲取一個Git存儲庫了,後面的篇章我們將開始對它進行最基本的代碼修改,分支,合並,推送和歷史記錄查看等基本操作。


相關文章:

  • Git企業開發者教程
  • DevOps文檔中心的技術實踐演進
  • 微軟研發雲全家桶VSTS登陸中國
  • Markdown/reST 文檔發布流水線
  • 幾款好用的Git GUI客戶端工具
  • 使用 SSH 連接 TFS/VSTS 的GIT倉庫
  • GitHub + VSTS 開源代碼雙向同步

請關註微信公眾號 【devopshub】,獲取更多關於DevOps研發運維一體化的信息

?技術分享圖片

g4e基礎篇#4 了解Git存儲庫(Repo)