15

この投稿は、コンペティションで 3 人用のクローズド リポジトリを設定するためのすべての情報を要約することを目的としています。私が書き留めていない問題をリストに追加してください。各質問への各回答を個別の回答として追加してください。

  1. 状況 A:下書きとファイルを 3 人でやり取りできます。ライターはファイルをリポジトリにプッシュすることしかできません。
  2. 状況 B:上記と同様ですが、すべてのチーム メイトがファイルをリポジトリにプッシュできます。

状況 A に関する一般的な問題

  • チーム メンバーが共有したいファイルをチーム メンバーが見ることができるように、A、B、C の人にリモート ブランチを設定するにはどうすればよいでしょうか?
  • 変更を神聖なリポジトリにプッシュすることしかできない人物 A を独裁者として設定するにはどうすればよいでしょうか?

状況 A に関する初期の問題

  1. A、B、C がプルできる Git リポジトリをどのようにセットアップできますか? Git はすでにリポジトリに正常にインストールされていると思います
  2. ライターのみにプッシュを許可するにはどうすればよいですか?

両方の状況に関する高度な問題

4

4 に答える 4

13

状況A

統合マネージャーのワークフローを設定したいようです。このシナリオでは、人物 A が神聖なリポジトリである初期リポジトリを作成します。A、B、C の各人は、個人的な作業のためにそのリポジトリを複製します。B または C の人が、A に共有用のリポジトリに含めてもらいたいものがある場合、それをローカル リポジトリにコミットし、A に自分のリポジトリからプルするように依頼します (プル リクエスト)。A さんは、B さんと C さんのリポジトリにremoteを設定し、変更をマージすることができgit pull personBます。git pull personB次に、人物 Agit pushはマージされた変更を神聖なリポジトリに入れます。

さまざまなトランスポートのクローン作成とプッシュをセットアップできます。最も簡単な方法は、ssh で git プロトコルを使用することです。例えば、

  1. 人物 A が神聖なリポジトリを作成します。37signals のこのページの「リモート リポジトリの作成」を参照してください。/local/git/project.gitそれがon にあるとしましょうsharedhost--shared=group統合リポジトリにしたいので、 を省略できます。(ここでの書き込みアクセスは、Unix ファイル許可を使用して保護されています。)
  2. ユーザー A、B、および C は、それぞれのホーム ディレクトリで、そのリポジトリを複製します。

    cd ~/src
    git clone ssh://sharedhost//local/git/project.git
    cd project # edit files in here.
    git commit
    
  3. 人物 A は、B と C のリポジトリのリモートをセットアップします。

    git remote add personB ssh://sharedhost/~b/src/project
    git remote add personC ssh://sharedhost/~c/src/project
    
  4. git pull personBこれで、A はB の変更を取得できます。A が満足したら、彼はgit push新しくマージされた変更を共有リポジトリにプッシュし、B と C はgit pullそれらをフェッチすることができます。

リポジトリのセットアップが少し複雑に聞こえる場合は、共有 git リポジトリのすべてのホスティングを処理するためにGitHubなどのプロバイダーに支払うことをお勧めします。また、問題が発生した場合に役立つサポートもあります。私にとって、最も難しい部分はコミットの流れを理解することであることがわかりました。それを理解すると、物事はより理にかなったものになり始めます。gitready.com でのこのディスカッションは、物事を明確にするのに役立つかもしれません。同様の内容をカバーするスクリーンキャストもあります。

于 2009-02-15T15:23:25.930 に答える
1
  1. A、B、C がプルできる Git リポジトリをどのようにセットアップできますか?

ssh -protocol (ssh username@ipAddress) を使用し、リポジトリ ( Source ) をホストするマシンでアカウントを提供することにより、3 人のユーザーに ssh アクセスを提供する必要があります。

チーム メンバーに SSH キーを提供することをお勧めします。投稿をご覧ください。これにより、たとえば次のように実行してクローンを作成できます。

git clone user@machine:/path/to/repo.git

発展した問題

どうやって3人用のアカウントを提供できますか?

ファイルを非公開にする必要がある場合は、数ドルの費用がかかる Github でアカウントを作成することをお勧めします。Gitosis を使用して、独自のサーバーにリポジトリをセットアップすることもできます。

ファイルを開くことができる場合は、無料で利用できる Github を使用することをお勧めします。


より発展した問題

Git リポジトリにユーザーを追加するにはどうすればよいですか?

Git ブランチで次のコードを実行すると、チームにユーザーを追加できます。

git add remote UserName ssh://ADDressToTheRepo

コマンドの例

git add remote schacon git://github.com/schacon/ticgit.git

より発展した問題

友人のブランチを Git に追加するにはどうすればよいですか?

スレッドで私の回答をご覧ください。

于 2009-02-16T03:45:55.427 に答える
0

チームメイトにバグを効率的に報告するにはどうすればよいですか?

チームメイトにバグや機能リクエストを報告する際に問題が発生しました。

ソフトウェアTicGitは私のために問題を解決します。これはGitのチケットシステムであり、プロジェクトとは別のブランチとして設定するだけでインストールできます。

于 2009-05-23T16:17:22.500 に答える
0

1 人が Gitosis の使用を提案しましたが、これが新しい問題を引き起こしました: sudo アクセス権がない場合、最初に Python-setuptools をセットアップしてサーバーに Gitosis をセットアップするにはどうすればよいでしょうか?

Gitosis をインストールするための解決策:最新の Python をインストールするための投稿を参照してください。お使いのシステムにはおそらく古い Python が使用されていることに注意してください。OS全体を更新せずにシステムPythonを更新することはできません。たとえば、システムが依存しているため、Mac Leopard の Python を更新することはできません。

これで、python-setuptools のインストールを開始できます。それらをインストールするには、投稿を参照してください。

于 2009-03-09T18:26:16.463 に答える