在 Gerrit 倉庫中建立空分支
阿新 • • 發佈:2021-06-15
.
.
.
.
.
Git 倉庫可以建立不帶有歷史記錄的空分支,但 Gerrit 無法直接建立空分支,於是需要通過繞一點彎子來實現。
由於 Gerrit 建立的倉庫沒有工作空間,所以無法直接建立分支。因此我們需要在 Gerrit 伺服器上先克隆一份本地倉庫,然後在本地倉庫的工作空間中建立空分支,最後繞過 Gerrit 直接將本地倉庫的空分支推送到 Gerrit 的原始倉庫中,以此來實現建立空分支的目的。
在本例中,我們要為 SlideManager.git 倉庫建立一個不包含歷史記錄的空分支:dev-blueberry。
首先登陸 Gerrit 伺服器,並來到 git 倉庫所在的路徑:
>$ sshgerrit@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
參考文獻: