2012-04-10 16 views
2

私は、単一のWebサーバーに格納されている多くのColdFusionプロジェクトで作業しています。私は最近、他人が「shown the light」していて、開発者マシン/テストマシン/生産マシン開発方法論に移動したいと思っています。Gitでマルチタスクを実行する方法

私は今、私(と私たちの施設で他の人が)動作するように「強制」されている方法に対処する最善の方法を調整しようとしてい

...

は、私たちのウェブサーバがこの

ように設定されているとしましょう
-Root 
--Project 1 
--Project 2 
--Project 3 
--Framework Files 

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

月曜日の朝、私はプロジェクト1を開始しました。私は4時間の機能リクエストの途中で、私の8人の上司のうちの1人が来て、クリティカルProject 2で修正する必要のある問題。月曜日は素晴らしいスタートです。

Project 2 STATを修正する必要がありますが、Project 1の機能リクエストはまだ完了していません。私がProject 2で修正したら、テストするためにローカルリポジトリにコミットしてください...それはP1に未完成のフィーチャを含めるつもりです。これは悪いです。

Joel Spolsky's Mercurial Init Architecture pageから外挿すると、各サブプロジェクトのリポジトリの 'dev'クローンを作成するソリューションはありますか?これらをコミットするには、メインのローカルリポジトリにコミットし、次にメインの共有リポジトリにコミットします。

Gitには別のコンセプトがありますか?

おかげで、すべて、クリス

答えて

7

私はbranchingを見ることをお勧めします。

分岐することで、複数の異なる開発ストリームを一度に維持し、それらの間で簡単にスワップすることができます。さらに、リモートリポジトリにリモートブランチを作成し、複数のチームメンバーがこれらを同時に処理できます。彼らはあなたが望むように長く生きるか短命になることができ、Gitは多くの多くの支店をつくり、維持することに優れています。

stashingは後で復帰する作業を格納するスタックベースのメカニズムであるため、stashingとは異なります。分散されておらず、スタックを介して複数のワークフローを管理するのは難しくありません。

Here's a useful page分岐ワークフローについて説明します。

+0

gitフローを完全に消化するには少し時間がかかりますが、これは非常に便利です。 –

4

はあなたが未完成の作品を「片付ける」と、後でそれに戻って来ることができますstash機能を逃しています。この機能を使用すると、最後のコミット後にファイルを変更したが、コミットの準備が整っていないところにある "ダーティ"ディレクトリを取得し、コミットせずに変更を保存することができます。ディレクトリは最後のコミットの様子に戻され、変更はgitによって保存されます。再びapplyを使用して

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

、あなたはあなたの仕事を復元することができます:

$ git stash apply 

もう一つの使い方は、あなたはsaveを使用して作業を保存することができ、上記のリンクから...非常に単純です問題は、すべてのプロジェクトを単一のリポジトリに収めていることです。これはベストプラクティスではありませんが、submodulesを使用して対処することができます。これにより、基本的に1つの包括的なリポジトリ内に複数のリポジトリを配置できます。上記のリンクは、サブモジュールの使用方法に関する優れたリソースであり、number of useful posts here on SO discussing how to use themがあります。

関連する問題