32

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

git init --bare

後で私は、複数のユーザーがいるプロジェクトで作業したい場合、これが私がそれを行うべき方法であることを学びました。

git init --bare --shared

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

4

4 に答える 4

40

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

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

さらに、追加

sharedrepository = 1

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

[receive]
    denyNonFastforwards = true

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

于 2012-01-16T16:40:05.720 に答える
5

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

于 2012-01-16T16:44:57.340 に答える
5

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

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
于 2014-02-13T23:16:54.740 に答える
3

リポジトリが存在するホストからリポジトリを共有しようとしている場合は、追加の構成手順を実行する必要があります(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/

于 2012-01-16T16:41:08.720 に答える