Chienomi

Gitで共同作業を行うための備忘録

share

結構問題が多くて苦労したので、記録しておく。

なお、sshを利用した認証。

まずベアリポジトリをsharedで行う。

git init --bare --shared /path/to/repos.git

この場合、/path/to/はグローバルにアクセス可能でないと、リポジトリにアクセスできない。

この/path/to/repos.gitがいわばマスターリポジトリとなる。各開発者はこれをクローンする。

git clone ssh://localhost/path/to/repos

ここが非常に重要。もしsshではなくファイルを直接クローンしてしまうと、スティッキービットを立てていても不適正なパーミッションが設定され、取り扱えなくなってしまう。 そのため、例えローカルなファイルであっても、共有する場合はSSH経由にしないとうまくいかない。

また、忘れがちなので。最初にpushする時だけ

git push origin master

しておかないといけない。だいたいがgit pushgit pullだけでこなすため、同じエラーが出て戸惑うことになる。