<?xml version="1.0" encoding="utf-8"?>
上面即是部分xml檔案,一下兩個解釋如下 :
remote表示 遠端伺服器 , name=「origin」 , 表示該伺服器用 origin表示
default表示預設project的分支歸屬。 上述表示每個project如果沒有自己的說明將屬於git分支:refs/heads/lhznj-19r17-android-4.4
這句表示乙個project 位於當前工程根目錄的 art目錄, 它屬於的git分支是: android/platform/art
以上說了些 .repo目錄下的結構,可以發現 git init操作是從 url2獲取了完整的 repo工具 , 然後從 url1獲得專案的 git倉庫組織結構檔案 manifest.xml檔案 。然後在使用repo sync的時候根據 manifest.xml檔案從伺服器獲取** 。
正文 :
1 :git-daemon-run 安裝
apt-get install git-daemon-run
目前對於 git-daemon認識比較淺顯 ,他是乙個用於搭建 乙個無口令登入訪問git版本庫的工具:
a、 可以確定伺服器上git倉庫所在的位置 。 比如 使用 repo -u url 的時候 ,當安裝了 git-daemon就只需要把url寫成 ip:/倉庫名子 就可以了 , 因為在 git-daemon中配置了這個倉庫的路徑了, 否則 就要寫上倉庫的絕對路徑 ,那樣很麻煩 。
b、git-deamon可以控制git客戶端的訪問, 管理客戶端的訪問許可權 。
c.如果對於版本庫的提交許可權有限制 可以使用gitolite工具,這樣就不用安裝 git-daemon-run 工具。
2. 安裝git工具 和 生成公鑰
這部分內容網上很多,此處略去。。。。
3. 搭建android工程
a 新建目錄reposerver ,將 manifest.git 和 git-repo.git 複製到這個目錄
b 使用 git clone 將manifest。git 轉殖到本地 , 按照 現在工程中檔案的分布 重新建立乙份 manifests.xml 檔案 , 注意該檔案中 版本庫和目錄的對應關係, 如下
表示 工程目錄中的build 對應到版本庫 android/platform/build , 所以在使用 repo sync的時候 repo會 這樣去取版本:
git clone gitserv@ip: path/android/platform/build build
既然是這樣 ,我們可以按照 工程目錄的結構 來建立版本庫 。 這裡有個方法 , 我們修改 manifests.xml 檔案 , 按照已有的 android的 工程目錄檔案 結構 構建版本庫
的目錄結構 ,例如:
注意這裡的檔案的當前目錄是 manifest.git所在的目錄, 所以上面兩句就表示 在當前目錄下有 build.git 和 kernel.git兩個 版本庫 , 分別會抽取到**工程根目下 的
build 和 kernel 目錄 。所以我們要在伺服器上 建立 這兩個版本庫並提交我們已有的**檔案。
在建立版本庫的時候 如果使用git init命令 , 建立的版本庫可以被轉殖但是無法提交, 需要設定該庫的config檔案中 bare = true ,這樣才可以提交 。 但對於 gitolite ,由
於安裝gitolite後 它會自動去找 目標+.git的庫 , 並且該庫要使用 git init --bare 命令建立, 所以還是建議使用 git init --bare 建立版本庫 , 並且庫名使用 .git字尾 , 例如
kernel.git , 免得和 gitolite出現衝突。
依次類推建立所有用到的版本 ,這樣git庫就搭建好了 。
當然這裡很麻煩, 應為庫很多 , 這裡就需要用指令碼了 。
使用 repo forall -c " echo $repo_path" > repo_path.txt , 這樣所有要建立的版本庫路徑就在 repo_path.txt檔案中了 ,然後運用指令碼就能搞定了 。
4. 搭建 gitolite伺服器
當git 伺服器搭建好之後 , 我們需要對 其進行提交許可權的控制 , 這是需要安裝 gitolite工具。
在ubuntu系統系操作如下 :
a。 sudo apt-get isntall gitolite
b. cp /home/admoin/.ssh/id_rsa.pub /home/gitserv/admin.pub #拷貝admin使用者的 公鑰檔案到 安裝gitolite伺服器的賬戶 , 這個賬戶和 建立 git庫的賬戶一致
c . gl-setup /home/gitserv/admin.pub #此步初始化 gitolite , admin.pub指定為 gitolite的管理員賬戶 , 可以對 gitolite 控制的版本庫進行 許可權設定 。同時也將 admin.pub也寫入了 當前使用者的 authorized_keys 檔案中, 這樣 admin使用者就成了第乙個可以訪問 gitserv@【本機ip】:gitolite-admin.git 庫的使用者 。
d. c之後安裝就完成了 ,完成之後會在 /home/gitserv/ 目錄下生成 repositories 目錄 , 這個目錄就是 gitolite 所管理的版本庫的位置 , 在/home/gitserv/ 目錄下 還生成了.gitolite.rc檔案 和 .gitolite目錄 。
.gitolite.rc檔案是用來配置 gitolite伺服器的 , 預設的gitolite伺服器不能再 許可權檔案中使用萬用字元 , 所以將 .gitolite.rc 檔案中的 gl_wildrepos = 0; 改為 gl_wildrepos = 1;
e. 進入admin'賬戶, 將 c中的 gitserv@【本機ip】:gitolite-admin.git 庫取下來, 修改 gitolite-admin/conf/gitolite.conf 檔案 , 這個檔案管理了 gitolite所控制下版本庫的許可權 。 也可以將自己已經建立好的版本庫加入其中 。 加入 我們的版本庫目錄叫做 reposerver , 我們可以再 該檔案中加入如下 :
repo ^repo-server/.+$
c = @admin
r = @all
w+ =@gitserv
上述表示 c (版本庫建立者) 是all (所有人) , 那麼僅有admin就對此版本庫有全部許可權
r 表示唯讀
w表示可寫 , + 表示可以強制提交 。
當然 reposerver很大 , 不方便移動的話我們可以用鏈結,同樣可以起到授權的作用 。
5 .關於 git庫的建立
對於批量的建庫操作可以使用指令碼完成 , 可以在 伺服器上 本地操作建立 , 也可以是用 git賬戶遠端建立 。
本地建立 : git init --bare
遠端建立:
mkdir kernal.git
cd kernel.git
git init --bare
git remote add origin [email protected]:/repo-server/kernel.git
git push origin master
windows git daemon 伺服器搭建
安裝git 使用不再贅 在資料夾repo 中執行git init新建git倉庫 在 repo目錄下執行git config local receive.denycurrentbranch updateinstead執行git config global sendpack.sideband false...
自搭ngrok伺服器
在阿里雲伺服器自己搭 ngrok 的伺服器,步驟基本跟著 1,2 一步步來,本人需要用到 這裡僅提幾點注意 我那個阿里雲伺服器有個網域名稱,在管理頁可以看的,生成證書時設定export ngrok domain 那個網域名稱 就是用這個網域名稱,後面 ngrokd 的執行引數 client 端的配置...
CentOs下LinuxWeb伺服器的搭建
注意細節,祝大家都能避坑 一 安裝web伺服器所需軟體,設定伺服器的ip為192.168.1.2 1 安裝apache服務程式 apache服務的軟體包名稱叫做httpd yum install httpd y2 將apache服務新增到 開機自啟中 3 設定ip ifconfig ens33 19...