1. 程式人生 > >Git clone 常見用法

Git clone 常見用法

二 克隆Git倉庫

1.1 從遠端倉庫中克隆整個程式碼倉庫

    mkdir Demo  //在當前路徑下新建一個資料夾,用來存放將要拉取的整個程式碼庫

    cd Demo           //進入這個資料夾

    repo init -u ssh://igerrit.storm:29418/Demo/manifest -b master    

//-u :指定一個URL,其連線到一個manifest倉庫

//-m:在manifest倉庫中選擇一個xml檔案

//manifest:manifest是遠端倉庫裡的一份清單,init的時候就是按照這份清單從伺服器進行同步的

//ssh://igerrit.storm:29418/Demo/ :是一個遠端伺服器的地址,地址可以是私人的也可以是共有的,共有的表示程式碼是公開的

//-b:表示後接分支名,可以是master,也可以是其他分支

    repo sync //這是一個封裝的命令,用來同步程式碼。 上一步應該用時比較少,這一步用時較長

    repo start master  --all  //這也是一個封裝的命令,用來切分支的。這一步不可缺少 ,意為將拉下來的版本庫都切換到master分支,如果不做這一步,克隆下來的所有倉庫預設是no branch狀態,容易導致後面工作時新增的程式碼丟失

1.2 克隆單個倉庫

    git clone https://github.com/×××  從遠端庫中克隆,克隆一個版本庫到新的目錄,可以在當前目錄新建一個資料夾,也可以git clone [地址] [本地目錄]

git clone ssh://igerrit.storm:29418/tools/repo.git // 同上,

之後 git pull origin master //origin是遠端主機,master是預設分支

要克隆一個倉庫,首先必須知道倉庫的地址,然後使用git clone命令克隆。

Git支援多種協議,包括https,但通過ssh支援的原生git協議速度最快

單一倉庫的更新可以使用git pull命令。

repo init完成的操作如下:

(1):完成repo 工具的完整下載,執行的repo指令碼只是載入程式

(2):克隆清單庫manifest.git(地址來自於-u引數)

(3):克隆的清單庫位於manifest.git中,克隆到本地.repo/manifests.清單,.repo/manifest.xml只是符號連結,它指向.repo/manifests/default.xml檔案,

repo sync:用於參照清單檔案.repo/manifest.xml克隆並同步版本庫。如果某個版本庫尚不存在,則執行repo sync命令相當於執行git clone。如果專案版本庫已經存在,則相當於執行下面的兩條指令:

(1):git remote update //相當於對每一個remote源執行了fetch操作

(2):git rebase origin/branch //針對當前分支的跟蹤分支執行rebase操作

repo start:建立並切換分支,是對git checkout -b命令的封裝 //如果存在分支則切換分支,若不存在則建立並切換

    區別是repo start 是在清單檔案設定分支的基礎上建立特性分支,git checkout是在當前所在分支的基礎上建立特性分支,如果是針對於整個版本庫,那麼相當於 repo forall -c git checkout -b 

題外:在使用這些命令克隆倉庫之前,我們是需要配置一些環境,如ssh的key,使用者名稱,郵箱名等等

    如果公司使用的是私有github,在初始化倉庫之前需要若是初始化倉庫的時候出現提示倉庫已經初始化,那麼可以嘗試刪除本地的.repo