6

はじめに

私は以前、ソロ プログラマーとして働いていたときに、オフサイトで自分が行っていたことを記録しておくために SVN を使用したことがあります。それよりもはるかに。「ブランチ」、「マージ」、「チェックアウト」は、悲しいことに、私にとって謎です。

私が Git を使い始めたいと思っているのは、オフィスから離れて仕事をしている何人かの男性がいて、IDE 統合によって不機嫌になり、他のバージョン管理システムにアクセスできないことがあると不満を漏らしているからです。連絡が取れなくなったとき。「すべての作業ディレクトリはリポジトリである」という Git の考えは、それを解決するために何らかの方法で進むべきだと思われます。

とにかく、Windows のコンテキスト メニューなどに The Shiny を追加するために「Git 拡張機能」をダウンロードしました。Google で検索しても明らかな結果が得られなかったので、次の理論的なシナリオを Stack Overflow に提示して、誰かが何をすべきかを短い言葉で教えてくれることを期待しています。

シナリオ

3 つのプロジェクトがあります。1 つのプロジェクト ProjectReuse は、他の 2 つのプロジェクト (ProjectA と ProjectB) によって使用されます。組織内のさまざまな人が、Visual Studio 2010 を使用して、各プロジェクトのコードを編集する必要があります。

デスクトップには、「ProjectReuse」、「ProjectA」、「ProjectB」というラベルの付いた 3 つのフォルダーがあります。Git Extensions ウィンドウが開いています。サンタクロースの帽子をかぶった牛がこちらを見つめています。

質問

常駐接続の有無にかかわらず、オンサイトでもオフサイトでも、必要なときに複数の人々 (厄介な常にオンサイトではない人を含む) がリポジトリにアクセスできるように、リポジトリを作成するにはどうすればよいですか?私たちのサーバーに?

最初の人がファイルを編集する必要がある場合、彼は何する必要がありますか? チェックアウト?ブランチ?これを他のチーム メンバーに説明する必要がありますが、私自身、これらの概念について少しぐらついています。以前はソロ プロジェクトでのみバージョン管理を使用していました。

ウィードリングと言い訳

最初の「これを設定するにはどうすればよいですか?」質問は私が最も興味を持っていることですが、ばかのガイドを求める場合は、この質問に出くわした次のばかのためにできるだけ役立つように頼む方がよいと思います. ここでは、特に詳細な回答を探しているわけではありません。マルチユーザーのバージョン管理システムがどのように機能するかについて、明確なイメージがありません。それを頭に入れておけば、残りは自分で組み立てることができるはずです。

4

2 に答える 2

10

では、まず git について簡単に説明しましょう。Gitが配布されています。これを必要なだけ自分自身に繰り返します。中央サーバー、中央リポジトリ、または実際には中央のものはありません。SVN とはまったく対照的に、全員が 1 つのリポジトリにアクセスしているわけではありません (中心的なものは何もありません)。

あなたがすることは、どこかにリポジトリを作成することです。次に、他の全員がそれを複製 (コピー) します。これで、誰もが自分のリポジトリのコピーを持ち、それを好きなように操作できるようになりました。ブランチ名は、リポジトリ間で一貫している必要さえありませんが、多くの人がこれを行っています。

それで、どのように設定しますか?リポジトリを初期化すると、それを必要とするすべての人がそれを複製します。あなたの場合、3 つすべてをひとまとめにするのではなく、各プロジェクトに独自の git リポジトリを用意することをお勧めします。

しかし、しかし、一体どうやって開発チームを管理することになっているのですか?決して恐れるな。中央リポジトリはないと言いましたが、だからと言って、リポジトリの 1 つをリリース リポジトリに指定し、別のリポジトリを実験用などに指定することを止めるわけではありません。

そこで必要になるのがワークフローです。通常、あなたが行うことは、上記のリリース リポジトリを作成してから、「全員がここのマスターからプルしてください」と言うことです。これは、最新の「安定した」リリースを表します。次に、ここから分岐して新しい機能を開発するよう全員に指示します。彼らはこれをします。これらが完了したら、変更を自分のマスターまたはどこかにマージして戻すように人々に依頼し、リリースマネージャーであるあなたがそれらからプルします(おそらく開発ブランチにですが、それは簡単なので、リリースマスターにそれを行うこともできますコミットをリバースします)。次に、次の人がマスターを更新し、マージを行います。必要なすべての機能が得られるまで、独自のマージ競合などを解決します。テストなどを行うと、リリースリポジトリは実際にそのすべてをマスターにプルします。

実際には、さまざまなことを行う場合があります。たとえば、多くの人がいる場合、多くの人が共有プロジェクトに互換性のない変更を加えた場合、いくつかのマージ コミットが発生するため、非常に多くのコミュニケーションが必要になります。これを回避するために、ユーザーは相互にプル/マージするか、ローカルの「共有」リポジトリを使用できます。

それは機能します。

于 2010-12-15T15:38:24.067 に答える
3

ナインフィンガーズが言ったように、新しいリポジトリを初期化して、他の人にそれをクローンさせてください. パブリック (または中央) リポジトリが必要な場合は、プライベート リポジトリではなく共有リポジトリを作成することに注意してください。最も簡単な方法は、最初に個人リポジトリを作成し、共有リポジトリとして誰もがアクセスできる場所 (ネットワーク共有など) に複製することです。

ここで Git 拡張機能のビデオ チュートリアルをいくつか作成しました: http://code.google.com/p/gitextensions/ ビデオ チュートリアルは少し古く、あまり良くありません。始めるには十分なはずです。

幸運を!

于 2010-12-15T20:44:23.267 に答える