文章出處

GitLab是由Ruby語言開發的基于Linux的Git服務器,是我見過的最強大的Git服務器。發現它之后,立即決定將Git服務器換成GitLab。

但安裝好GitLab之后面臨一個問題,如何將服務器上的git項目直接導入到GitLab,之前的Git服務器是由是git+apache搭建的(詳見在Linux上用Apache搭建Git服務器)。

在網上發現了這篇文檔——Import bare repositories into your GitLab instance,并按之進行了操作。

1)設置存放代碼庫的主目錄

vi /etc/gitlab/gitlab.rb

比如這里設置為:git_data_dir "/gitlab/repos"

2)訪問剛搭建的GitLab站點,創建一個group,比如cnblogs。

這時會在 /gitlab/repos 下創建 /gitlab/repos/repositories/cnblogs 文件夾。

然后在/gitlab/repos/repositories/創建一個文件夾,比如cnblogs

3)將現有的所有git項目文件復制到這個文件夾

cp -r /data/git/* /gitlab/repos/repositories/cnblogs

4)修改一下復制過來的文件夾的所有者:

chown -R git:git /gitlab/repos/repositories/cnblogs

5)運行GitLab導入命令

cd /var/opt/gitlab
gitlab-rake gitlab:import:repos

等了一段時間之后,顯示done,卻一個項目也沒導入進來。

經研究發現,在導入時,GitLab只認文件夾名以.git結尾的項目。于是,將要導入的項目文件夾名稱加上.git后綴,再次進行導入。

結果顯示導入成功,比如:

Processing cnblogs/CNBlogsJob.git
 * Created CNBlogsJob (cnblogs/CNBlogsJob.git)
Done!

可以是GitLab站點上卻看不到已導入的項目。多次努力,也沒能解決這個問題。

后來,實在沒辦法,改為手動導入,導入方法如下:

1)在GitLab站點上創建與要導入的項目同名的項目。

2)進入剛創建的項目文件夾

cd /gitlab/repos/repositories/cnblogs/項目名稱.git

3)刪除該文件下的所有文件

rm -rf *

4)將要導入的項目文件夾下的所有文件復制過來

cp -r /data/git/CNBlogsJob/* /gitlab/repos/repositories/cnblogs/CNBlogsJob.git

就這樣將項目一個一個地導入進來。

5)導入完成后,修改一下導入的所有項目的文件所有者

chown -R git:git /gitlab/repos/repositories/cnblogs

如果不修改所有者,客戶端無法進行git push。

就這樣手動地完成了現有Git項目的導入。

備注:操作系統是CentOS 6.2,GitLab版本是7.8.4。


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()