3

私は、単一のWebサーバーに格納されている多くのColdFusionプロジェクトに取り組んでいます。私は最近、SOで他の人から「光を見せられた」ので、開発者のマシン/テストマシン/生産マシンの開発方法論に移行したいと思っています。

私は今、私(および私たちの機関の他の人々)が「強制的に」働く方法に対処するための最善の方法を調整しようとしています...

Webサーバーがこのように設定されているとしましょう

-Root
--Project 1
--Project 2
--Project 3
--Framework Files

また、中央のgitリポジトリが設定されており、作業しているルートのクローンがあるとします。グループ内の他のすべての開発者も、リポジトリの独自のクローンを持っています。

つまり、月曜日の朝で、プロジェクト1の作業を開始しました。推定4時間の機能リクエストの最中に、8人の異なる上司の1人がやって来て、重大な問題が必要であると教えてくれました。プロジェクト2で修正されます。月曜日は素晴らしいスタートを切りました。

Project 2 STATを修正する必要がありますが、Project1の機能リクエストはまだ完了していません。プロジェクト2で修正した場合は、ローカルリポジトリにコミットして、テストにプッシュします...P1に未完成の機能が含まれることになります...これは悪いことです。

JoelSpolskyのMercurialInitArchitectureページから外挿すると、各サブプロジェクトのリポジトリの「dev」クローンを作成するソリューションはありますか?それらにコミットするには、次にメインのローカルリポジトリにコミットし、次にメインの共有リポジトリにコミットしますか?

私が見逃しているGitの別の概念はありますか?

みんなありがとう、クリス

4

2 に答える 2

8

分岐を検討することをお勧めします。

分岐することで、一度に複数の異なる開発ストリームを維持し、それらを簡単に切り替えることができます。さらに、リモートリポジトリにリモートブランチを作成し、複数のチームメンバーがこれらに同時に取り組むことができます。それらは必要に応じて長寿命または短命にすることができ、Gitは多くのブランチの作成と保守に優れています。

スタッシングは、後で戻ってくる作業を格納するためのスタックベースのメカニズムであるため、スタッシングとは異なります。分散されておらず、スタックを介して複数のワークフローを管理することは、控えめに言っても難しいでしょう。

これは、分岐ワークフローについて説明している便利なページです。

于 2012-04-10T16:04:57.053 に答える
5

stash未完成の作業を「片付け」て後で戻ることができる機能がありません。この機能を使用すると、「ダーティ」ディレクトリ(最後のコミット以降にファイルを変更したが、コミットの準備が整っていない)を取得し、コミットせずに変更を保存できます。ディレクトリは最後のコミットで見た方法に戻り、変更はgitによって保存されます。使い方はとても簡単です...上のリンクから、save:を使用して作業を保存できます。

$ git stash save "work in progress for foo feature"

そして、あなたは以下を使用してあなたの仕事を再び復元することができますapply

$ git stash apply

もう1つの問題は、すべてのプロジェクトが1つのリポジトリにあることです。これはベストプラクティスではありませんが、サブモジュールを使用して対処できます。これにより、基本的に、単一の包括的なリポジトリ内に複数のリポジトリを含めることができます。上記のリンクは、サブモジュールの使用方法に関する優れたリソースであり、SOには、サブモジュールの使用方法について説明している役立つ投稿が多数あります

于 2012-04-10T16:00:51.620 に答える