4

私たちは SVN ショップでしたが、今では git を使用しています (すべてのクールな子供たちがやっているからです)。

各開発者は、新しい機能に取り組んでいる間、自分の git ツリーでローカルにコードをチェックインします。一部の作業をメイン リポジトリに送信する準備が整うと、各プロジェクトの共有ドライブにディレクトリが作成されます。次に、git pushそのレポに対して agit syncまたはa を実行git pullして、「1 つの真のソース」から個々の開発マシンを更新します。

誰かがリポジトリへのプッシュを行い、どういうわけかメイン リポジトリを独自の git ツリーの開発マシンのバージョンに置き換えることができたときに、1 つの事故がありました。

これは物事を行うための最良の「git」方法ですか?

私たちは 2 つのサイトにいますが、共有ディレクトリは共通です。コード領域での大きな衝突を一般的に回避できる少数の開発者。TortoiseGit を使用するすべての Windows では、セキュリティはそれほど重要ではありませんが、管理者のサポートがないため、複雑なサーバー ソリューションは利用できません。

4

4 に答える 4

4

Git は強力です。分散されていますが、必要に応じて集中型であることを制限しません。

svn tho' とは異なり、独自の慣習ややり方を設定することは非常に重要です。

従うべき非常に優れたモデルを下の図に示します。 ここに画像の説明を入力

人気のあるgit 分岐モデルから。

于 2011-02-04T20:54:56.583 に答える
3

次のリンクでワークフローを見てください。私の好みは、統合マネージャーのワークフロー (@simon の 2 番目のオプションに似ています) であり、github のモデルに関連しています: http://progit.org/book/ch5-1.html

于 2011-02-04T21:09:47.893 に答える
2

git を使用する 2 つの一般的な方法は次のとおりです。

  • すべての開発者が中央レポからプルおよびプッシュします (現在行っているように)

  • すべての開発者には、1 つのプライベート リポジトリと 1 つのパブリック リポジトリがあります。彼は他のパブリック リポジトリから必要なものをプルし、自分のパブリック リポジトリにのみプッシュします。

2 番目のオプションを選択し、コードを非公開にする必要がない場合は、githubを使用して作業を簡素化できます。

于 2011-02-04T21:04:17.080 に答える
0

私たちのプロジェクトでは、いくつかのブランチを持つ gitosis 管理リポジトリを備えた中央サーバーがあります。そこから、各開発者は作業対象のブランチの最新の変更をプルし、独自の変更を行い、ローカルでコミットし、コンパイル可能でテスト済み (可能であれば) になったら、再度プル (変更をマージ) してプッシュします。

通常、あまり中断のない小さな機能はメイン ブランチで直接作業しますが、大きな変更は最初に独自のブランチで行います (複数の開発者がこのように共有する場合があります)。

使い終わったらブランチを削除することを忘れないでください。私は実際に という名前の特別なブランチを持っています。これは、決定ポイント (ブランチ、マージ、終了) で他のすべてのブランチへの参照をbranches追跡します。git merge -s ours ...ルート、またはバグ検出ブランチのみでした)、私はまだそれへの参照を持っており、必要に応じてそれを復活させることができます.

于 2011-02-06T21:40:35.687 に答える