在伺服器上部署Git

2021-06-05 18:43:18 字數 1530 閱讀 6196

發現乙個git學習資料 **,講的比較詳細,分享一 下。

開始架設 git 伺服器前,需要先把現有倉庫匯出為裸倉庫 — 即乙個不包含當前工作目錄的倉庫。做法直截了當,轉殖時用--bare選項即可。裸倉庫的目錄名一般以.git結尾,像這樣:

$ git clone --bare my_project my_project.git

initialized empty git repository in /opt/projects/my_project.git/

該命令的輸出或許會讓人有些不解。其實clone操作基本上相當於git initgit fetch,所以這裡出現的其實是git init的輸出,先由它建立乙個空目錄,而之後傳輸資料物件的操作並無任何輸出,只是悄悄在幕後執行。現在my_project.git目錄中已經有了乙份 git 目錄資料的副本。

整體上的效果大致相當於:

$ cp -rf my_project/.git my_project.git
但在配置檔案中有若干小改動,不過對使用者來講,使用方式都一樣,不會有什麼影響。它僅取出 git 倉庫的必要原始資料,存放在該目錄中,而不會另外建立工作目錄。

有了裸倉庫的副本後,剩下的就是把它放到伺服器上並設定相關協議。假設乙個網域名稱為git.example.com的伺服器已經架設好,並可以通過 ssh 訪問,我們打算把所有 git 倉庫儲存在/opt/git目錄下。只要把裸倉庫複製過去:

$ scp -r my_project.git [email protected]:/opt/git
現在,所有對該伺服器有 ssh 訪問許可權,並可讀取/opt/git目錄的使用者都可以用下面的命令轉殖該專案:

$ git clone [email protected]:/opt/git/my_project.git
如果某個 ssh 使用者對/opt/git/my_project.git目錄有寫許可權,那他就有推送許可權。如果到該專案目錄中執行git init命令,並加上--shared選項,那麼 git 會自動修改該倉庫目錄的組許可權為可寫(譯註:實際上--shared可以指定其他行為,只是預設為將組許可權改為可寫並執行g+sx,所以最後會得到rws。)。

$ ssh [email protected]

$ cd /opt/git/my_project.git

$ git init --bare --shared

由此可見,根據現有的 git 倉庫建立乙個裸倉庫,然後把它放上你和同事都有 ssh 訪問權的伺服器是多麼容易。現在已經可以開始在同一專案上密切合作了。

在伺服器上部署web專案。

一 發布 登陸密碼 公司上網密碼去掉 進入到部署路徑下,專案的跟目錄 root www yq scm cd usr local projects yqxt modules yq scm 更新 到伺服器 root www yq scm svn update 報有檔案衝突,刪掉衝突的檔案,再更新。roo...

在ubuntu上部署安裝ftp伺服器

ftp 是file transfer protocol 檔案傳輸協議 的英文簡稱,而中文簡稱為 文字傳輸協議 用於internet上的控制檔案的雙向傳輸。1.安裝vsftpd伺服器 sudo apt get install vsftpd 2.配置vsftpd.conf檔案 sudo vi etc v...

在阿里雲伺服器上部署RocketMQ

將rocketmq壓縮包拷貝到阿里雲 執行unzip解壓完成後進入主目錄 1.啟動nameserver nohup bin mqnamesrv 2.啟動broker nohup bin mqbroker n localhost 9876 但是這樣啟動外邊的伺服器是訪問不上的 需要改一些broker的...