2012-01-16 20 views
28

だからこれは私が私のプロジェクトを設定する方法であります今私はそのように働こうとしました。そして幸いなことに、私たちは最初からgitを再セットアップすることができました。私はまだあなたがプロジェクトの真ん中にいたら、それをすることはできないと思います。 共有リポジトリに裸のレポを変更する方法はありますか?Git、共有リポジトリへの裸の変更方法</p> <pre><code>git init --bare --shared </code></pre> <p>:</p> <pre><code>git init --bare </code></pre> <p>後で私はあなたが複数のユーザーを持つプロジェクトで作業する場合は、この私はそれを行っているべきかであることを学びました:

+0

もう1つの使用既存の裸のレポを修正したい場合は、リモートのレポが破損していて、通常のレポからリバースエンジニアリングした裸のレポと置き換える場合です。 –

+1

'git 1.7.1'と同じくらい早く、' git init --bare --shared'コマンドを*終了する*ベアレポで実行することができ、 'git'は指定された共有を使ってrepoを再初期化します。 – go2null

+0

[既存のgit repoをUNIXグループで共有するように設定する方法](http://stackoverflow.com/questions/3242282/how-to-configure-an-existing-git-repo-to-be) -shared-by-a-unix-group) –

答えて

34

--sharedオプションはちょうどに、リポジトリ内のすべてのパーミッションを設定しますので、後から手動でこれを行うことがグループ書き込み可能:

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

Plusは、中[core]セクションの下

sharedrepository = 1 

を追加.git/config。共有リポジトリは、次のreceive optionは(あなたがしてもしなくてもよい場合があります)、デフォルトで定義されています:

[receive] 
    denyNonFastforwards = true 

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

+0

ああああ!知っておいてよかった、私がこれまでに尋ねたことがあったらいいのにありがとう! – bottleboot

+1

さて、わかりました!私はそれを確認する@jørgensenの答えを読みました。 Stackoverflowには「D! 非常に啓発されているすべてのありがとうございました! – bottleboot

+0

私のために働かなかった。 'chmod -R g + s ... 'が必要でした。新鮮な 'git init --bare --shared'はグループ権限" rws "を持っています。 (Ubuntu 12.04) – Unapiedra

5

のchmod -R gが+に加えワット、あなたも(.git/)configを編集し、core.sharedRepository = ...を設定する必要があります。 git-init(1)にはいくつかの値があります。

+0

それは私もconfigを変更する必要があるという私の疑惑を完了させるようです。ありがとう! – bottleboot

4

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

1.スーパーユーザー権限を持っている場合は、手順2を使用してすべての権限を自分で変更することができます。それ以外の場合は、ユーザーで作成したオブジェクトをすべてのユーザーに要求する必要があります。彼らが誰であるか知っているコマンド:

$ chmod -R 774 . 

3:

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

2.Nowあなたとすべてのファイルの所有者ユーザーがやって、それらのファイルにアクセス権を変更する必要があります。その後、新しいリポジトリに--shared = group doneと同等の新しいプロパティをドキュメントにしたがって追加する必要があります。これはリポジトリグループ書き込み可能にして実行します:

$ git config core.sharedRepository group 
関連する問題

 関連する問題