web-dev-qa-db-ja.com

Git、ベアを共有リポジトリに変更する方法は?

これが私のプロジェクトの設定方法です。

git init --bare

後で、複数のユーザーがいるプロジェクトで作業したい場合は、次のようにすべきであることがわかりました。

git init --bare --shared

今、私はそのように作業しようとしましたが、幸いなことに、私たちはgitを再度セットアップできるように始めています。プロジェクトの途中ではそれができないのではないかと思います。ベアリポジトリを共有リポジトリに変更する方法はありますか?

31
bottleboot

--sharedオプションは、リポジトリ内のすべての権限をグループ書き込み可能に設定するだけなので、後で手動でこれを行うことができます。

$ chmod -R g+w the/repo/path

さらに、追加

sharedrepository = 1

[core].git/configセクションの下。共有リポジトリには、次の 受信オプション がデフォルトで定義されています(必要な場合と不要な場合があります)。

[receive]
    denyNonFastforwards = true

注:denyNonFastforwardsが必要かどうかを判断するには、このオプションは、共有リポジトリでマージが発生しないことを意味します。つまり、共有リポジトリでマージの競合が発生することはありません。代わりに、プッシュは拒否され、ユーザーはローカルリポジトリでマージを実行する必要があります。このリポジトリでは、修正がはるかに簡単で、他のユーザーによる共有リポジトリの使用を妨げません。

40
miku

Chmod -R g + wの他に、(.git/)configを編集してcore.sharedRepository = ...を設定する必要があります。 ...の場合、git-init(1)で説明されている値がいくつかあります。

5
jørgensen

おそらく、既存のリポジトリを共有しようとすると、多くの異なるユーザーがコミットする可能性があります。

1.スーパーユーザーのアクセス許可がある場合は、手順2を使用して自分ですべてのアクセス許可を変更できます。それ以外の場合は、ユーザーで作成されたオブジェクトを持つすべてのユーザーに質問する必要があります。次のコマンドを使用して、誰を確認してください。彼らです:

$ ls -la | awk '{print $3}' | sort -u 
<your user_name>
<his user_name>

2.これで、あなたとすべてのファイルの所有者ユーザーは、次のようにして、これらのファイルのアクセス許可を変更する必要があります。

$ chmod -R 774 .

3.その後、ドキュメントによると、新しいリポジトリに対して行われた--shared = groupと同等の新しいプロパティを追加する必要があります。これにより、リポジトリがグループ書き込み可能になり、実行されます。

$ git config core.sharedRepository group
5
helmedeiros

リポジトリが存在するホストからリポジトリを共有しようとしている場合は、追加の構成手順を実行する必要があります(sshのもの)。

http://shapeshed.com/setting_up_git_for_multiple_developers/

http://www.jedi.be/blog/2009/05/06/8-ways-to-share-your-git-repository/

3
user785262