1. 程式人生 > >Git的工作區和版本庫

Git的工作區和版本庫

  git是開源跨平臺的分散式版本控制管理工具,由於分散式不存在客戶端和服務端,每臺機器都是等價的,都有工作區和版本庫,開發人員無需聯網就可直接在本地進行工作,工作成果可直接儲存到本地版本庫,任何兩臺機器都可通過相互交換各自的版本庫來更新資訊。為確保時刻都能進行資訊交換,通常選擇一臺24小時執行的機器作為遠端版本庫,所有開發人員以此為中介來進行資訊交換。由於每臺機器都維持一個版本庫,即使遠端版本庫崩潰也不會有任何問題,可再選擇任何一臺未崩潰的機器來充當遠端版本庫。
  開源的集中式版本控制管理工具有最早的cvs以及最流行的cvs的改進svn,集中式分客戶端和服務端,其中版本庫在服務端,客戶端只有工作區,只能clone服務端有限的目錄到本地,且必須聯網才能提交程式碼到版本庫。如果服務端崩潰,開發人員都將無法工作。
  git是一個版本控制管理軟體,github是一個以git為中心的社交網站,提供git服務,通過其可直接使用git服務,本地無需安裝任何git軟體,如可通過該網站push、pull、merge等推拉合程式碼到遠端github上我們自己註冊的網址空間,但是該空間強制開源,誰都可以看到,可使用oschina提供的git服務申請私有庫。

  工作區在計算機上的體現就是一個目錄,與其它目錄區別是其下有一個隱藏的 .git 目錄,該目錄就為版本庫,是git的核心,不要隨便手動修改此目錄的內容。版本庫中有三個最重要的檔案,index,稱為暫存區stage;分支檔案,如master;HEAD檔案,儲存指向當前版本庫中當前分支的指標。
  

    // 當本機版本庫與遠端版本庫連線時,要求本機給出使用者名稱和密碼
    // git通過為每一個版本庫指定使用者名稱和郵箱來進行分散式管理

    // 設定輸入一次記住密碼,以後無需再重新輸入
    git config --global credential.helper store

    // 設定使用者名稱和郵箱,使用者名稱通常使用自己的erp賬號,引數global表示本機所有版本庫都使用該配置
git config --global user.name ".." git config --global user.email ".." // 遠端版本庫使用者名稱通常為origin,檢視與本機當前版本庫連線的遠端版本庫 git remote // 本機與遠端連線,使用http協議,第一次連線要輸入使用者名稱和密碼;使用ssh協議,第一次連線要給出公鑰 // 三個個回車後在使用者目錄下生成.ssh目錄,其中有git生成的公鑰和私鑰,將公鑰給服務端用於傳輸,私鑰不可洩露 ssh-keygen –t rsa –C "郵箱" // 建立一個空目錄作為專案目錄,在其下生成隱藏的.git目錄為版本庫,專案目錄為工作區
git init // clone遠端版本庫的master分支到本地當前目錄 // git預設以url最後一級目錄名去掉.git後名字作為clone下來專案的目錄名,可修改,但不要移動 git clone url // clone遠端版本庫的指定分支到本地當前目錄 git clone –b 分支名 url