一 建立本地的git倉庫。將文件 push到本地,。 1 準備工作。 安裝git工具,。 yum安裝git-core就行了。 局域網(wǎng)中的兩臺主機,,當然在本機上建也行。 本機:192.168.160.89. git服務器:192.168.160.83 git服務器下新建git用戶,,必要時允許匿名訪問。 2 例如要將本機上的某個目錄(如moon)作成一個git repo,,傳到git服務器上。 moon 下結(jié)構(gòu) . |-- file1 `-- file2 開始了,首先在git服務器上操作,。 # mkdir /pub/git/moon.git # cd /pub/git/moon.git # git init --bare # chown git:git /pub/git/moon.git -R 在本機上操作 # cd moon # git init-db # git add * # git commit -m -a "first" # git remote add master [email protected]:/pub/git/moon.git # git push master --all 之后如果順利的話就可以將moon目錄上傳到git服務器上了,, 在別的目錄后主機上git clone就可以得到moon目錄。 git clone [email protected]:/pub/git/moon.git 二 將android源碼在git服務器上保存,。 1 android 源碼git介紹,。 android用repo管理,repo其實就是為了更好的管理多個git子項目,,也就是說android源碼中有多個子git項目,,每個含有.git目錄的目錄就是一個git子項目。 2 先對某一個git子項目進行操作,。 bionic就是android源碼中的一個子git項目,。 # cd bionic # rm .git -rf # git add * # git commit -m -a "first" # git remote add master [email protected]:/pub/git/android/bionic.git # git push master --all 就行了,當然git服務器上得有bionic.git目錄,。 3 用repo在git服務器上管理android源碼,。 自己新建一個repo管理git倉庫: 假設(shè)目前已經(jīng)配置好了git,gitweb等,且目前有用戶: git 和 yyl,,且yyl用戶可以匿名訪問git用戶(ssh-key-copy...): 本機獲得ssh pub key: $ ssh-keygen //不需要輸入什么,,直接按Enter鍵就可以了 在服務器上設(shè)置可以允許我的本機匿名登錄 ssh-copy-id -i ../moon.pub [email protected] // moon.pub就是我的pub key 這樣再次ssh [email protected] 的時候就不用密碼了 下邊是建立自己的repo git倉庫 本機端: $ mkdir test_one $ cd test_one $ tree |-- aa | |-- a1 | `-- a2 |-- bb | |-- b1 | `-- b2 `-- cc |-- dd | |-- d1 | `-- d2 |-- manifest | | | `-- default.xml `-- ee |-- e1 `-- e2 這是yyl用戶下的一個普通項目目錄,我想為他創(chuàng)建遠程git倉庫,,并且分多個git來逐個管理,這時就需要用repo來管理這些git: $ cd aa $ git init-db $ git add * $ git commit -a -m "first init" $ cd bb $ git init-db $ git add * $ git commit -a -m "first init" $ cd cc/dd $ git init-db $ git add * $ git commit -a -m "first init" $ cd ../ee $ git init-db $ git add * $ git commit -a -m "first init" $ cd ../manifest/ $ git init-db $ git add * $ git commit -a -m "first init" }}} 服務器端: 我們將在git用戶下創(chuàng)建git倉庫:[[BR]] $ cd /pub/gittrees/ $ mkdir test_one;cd test_one $ mkdir aa.git $ git init --bare 因為bb、dd,、ee目錄的特殊性,我想將他們放在一個獨立的目錄中: $ mkdir platform;cd platform $ mkdir bb.git; cd bb.git $ git init --bare $ cd - $ mkdir cc; cd cc $ mkdir dd.git; cd dd.git $ git init --bare $ cd - $ mkdir ee.git; cd ee.git $ git init --bare $ cd - $ mkdir manifest.git; cd manifest.git $ git init --bare 本機端: {{{ $ cd test_one $ cd aa $ git remote add master /pub/gittrees/test_one/aa.git $ git push master --all ...... 完成后,,拷貝manifest項目: $ git clone [email protected]:/pub/gittrees/test_one/platform/manifest.git $ cd manifest $ vim default.xml <?xml version="1.0" encoding="UTF-8"?> <manifest> <remote name="origin" fetch="../.." /> <default revision="master" remote="origin" /> <project path="aa" name="aa" /> <project path="bb" name="plathform/bb" /> <project path="cc/dd" name="plathform/cc/dd" /> <project path="cc/ee" name="plathform/cc/ee" /> </manifest> 注意: fetch="../.." /> 中 會考慮default.xml所在的路徑,。如default.xml路徑為:/pub/gittree/test_one/platform/manifest . 而fetch為"../.." 。則 最后的url為:/pub/gittree/test_one . $ git commit -a -m "modigy default.xml" $ git push 這時,,就可以下載所有的test_one項目了: $ mkdir test; cd test $ repo init -u [email protected]:/pub/gittrees/test_one/platform/manifest.git -b master $ repo sync 這樣就可以下載在整個目錄了,,含有多個git倉庫。 |
|