1. 程式人生 > 其它 >在 Gerrit 倉庫中建立空分支

在 Gerrit 倉庫中建立空分支

.

.

.

.

.

Git 倉庫可以建立不帶有歷史記錄的空分支,但 Gerrit 無法直接建立空分支,於是需要通過繞一點彎子來實現。

由於 Gerrit 建立的倉庫沒有工作空間,所以無法直接建立分支。因此我們需要在 Gerrit 伺服器上先克隆一份本地倉庫,然後在本地倉庫的工作空間中建立空分支,最後繞過 Gerrit 直接將本地倉庫的空分支推送到 Gerrit 的原始倉庫中,以此來實現建立空分支的目的。

在本例中,我們要為 SlideManager.git 倉庫建立一個不包含歷史記錄的空分支:dev-blueberry。

首先登陸 Gerrit 伺服器,並來到 git 倉庫所在的路徑:

>$ ssh
gerrit@10.10.10.13 >$ cd xxxx/gerrit/git/xxxx/packages/apps

克隆本地倉庫:

>$ git clone SlideManager.git tmp.git
Cloning into 'tmp.git'...
done.

在克隆下來的倉庫中建立空分支:

>$ cd tmp.git
>$ git branch -a
*master
  remotes/origin/HEAD -> origin/master
  remotes/origin/dev
  remotes/origin/master
  remotes/origin/qa
  remotes
/origin/stable >$ git checkout --orphan dev-blueberry Switched to a new branch 'dev-blueberry' >$ cp .gitignore .. >$ git rm -rf . >$ mv ../.gitignore .

現在,將空分支提交,並推送給 Gerrit 的本地倉庫:

>$ git status
# On branch dev-blueberry
#
# Initial commit
#
# Untracked files:
#   (use "git add <file>...
" to include in what will be committed) # # .gitignore nothing added to commit but untracked files present (use "git add" to track) >$ git config user.name "root" >$ git config user.email "[email protected]" >$ git add . >$ git commit -m "New branch for dev blueberry." >$ git push origin HEAD:dev-blueberry Counting objects: 3, done. Delta compression using up to 4 threads. Compressing objects: 100% (2/2), done. Writing objects: 100% (3/3), 356 bytes | 0 bytes/s, done. Total 3 (delta 0), reused 2 (delta 0) To /home/gerrit/xxxx/gerrit/git/xxxx/packages/apps/SlideManager.git * [new branch] HEAD -> dev-blueberry

大功告成,去 Gerrit site --> Browse --> Repositories --> Branches 網頁重新整理一下看看吧,剛建立的新分支應該已經存在了!

最後,別忘了刪掉 Gerrit 伺服器上面的臨時倉庫:

>$ cd ..
>$ rm -rf tmp.git

參考文獻:

在GIT中建立一個空分支