Gitolite 如何移機搬家

Linux 要將 Gitolite 做搬家的動作,該怎麼做呢?

  • 註:此篇紀錄是 Debian Linux (stretch) 的 gitolite3 的搬法

閱讀全文〈Gitolite 如何移機搬家〉

Gitolite push 自動更新如何做

Gitolite 的某個 Project 要 push 後,自動到前端的機器自動更新,要如何做?

Gitolite push 自動更新如何做

一般要實做 push 自動更新,只需要從 hooks/post-update 著手即可。

  1. cd git-project/hooks/
  2. cp post-update.sample post-update
  3. chmod +x post-update
  4. vim post-update # 內容如下
    #!/bin/sh
    
    /usr/bin/ssh user@example.com "cd /var/www/project/;git pull"
  5. 再來將 user 的 ~user/.ssh/id_rsa 放到 /home/gitolite/.ssh/ 即可。

但是 gitolite 會將 hooks 裡面的檔案權限都自動修改成 640 (不可執行)

所以換個作法:

  1. cd git-project/hooks/
  2. cp post-update.sample /usr/share/gitolite/hooks/common/post-update.project
  3. chmod +x /usr/share/gitolite/hooks/common/post-update.project
  4. vim /usr/share/gitolite/hooks/common/post-update.project # 內容如下
    #!/bin/sh
    
    /usr/bin/ssh user@example.com "cd /var/www/project/;git pull"
  5. 再來將 user 的 ~user/.ssh/id_rsa 放到 /home/gitolite/.ssh/ 即可。
  6. ln -s /usr/share/gitolite/hooks/common/post-update.project /var/cache/git/project/hooks/post-update

這樣子就可以 push 試試看囉~

Linux 使用 Gitolite 架設 Git Server

單純使用 SSH 架設可見此篇: Linux 架設使用 SSH 共享存取的 Git Server

想要控管 User / Project 權限, 而且還想要控管 branch / tag 等讀寫權限, 則需要靠 Gitolite 等套件來協助.

  • gitolite - SSH-based gatekeeper for git repositories

此篇主要寫的是 Gitolite 架設, 若之前已經有依照上述文章架設共享存取的 Git Server, 而 Gitolite 也想用 git 的帳號來管理, 則需做下述動作先改回原始設定.

註: 此文會用 gitolite 的帳號來管理, 不會用 git 帳號, 所以不需要做下述更改的動作

  1. vim /etc/passwd

    git:x:1000:1000::/home/git:/usr/bin/git-shell
    改回
    git:x:1000:1000::/home/git:/bin/sh

  2. mv /home/git/.ssh/authorized_keys /home/git/.ssh/authorized_keys.bak

閱讀全文〈Linux 使用 Gitolite 架設 Git Server〉