2011-04-01 17 views
1

ここでは私がやって来るワークフローについて説明します。これをgitでどうやって解決しますか?Gitワークフロー:ブランチ内でのIP作業

私は適切なときにコミットして、ブランチの機能に取り組んでいます。私はいくつかの探索的作業の途中です。私はを実行しません。はコミットしたいと思っています。なぜなら、私はとにかくそれを投げ捨てる可能性が高いからです。

私がやっていることを落として別の支店で作業する必要があります。 git stashをお勧めしたいと思います。私は一時的な切り替えのためにすべての時間を使用しますが、私はこの探索的な支店に自分の仕事を1週間以上残すことを計画しています。私はgit stashがスタックアップを開始したときに扱いにくく、何が何であるかを理解しようとしていることがわかりました。

インデックスがブランチ固有のものであれば、このブランチのインデックスにこのようなものを残しておくとよいでしょう。 git stashがブランチ固有のものであれば、このブランチにプッシュされた隠しを残しておくだけで大丈夫です。そして、他の枝の私の隠しは、これを埋めないでしょう。

なぜ新しいコミットを行うだけではないのですか?これが未完成の仕事である場合、コミットの意味を覆していると感じています。もし私がそれをすべてゴミ箱にしたら、私はコミット履歴にこれを望んでいません。

従来のvcsを使用すると、私のファイルシステム上の別の場所から再チェックアウトして、現在の作業をそのまま残しておきます。

これはどうしたらいいですか?

答えて

2

ブランチでコミットし、後でそれを削除したい場合は、git rebase -iで削除することができます。

または、現在のブランチに基づいて一時的なブランチを作成し、そこにコミットしてください。一時的なブランチを削除したい場合は削除してください。

+0

ツールボックスに 'rebase'を置く時間があります。一時的なブランチを作成しても、それを保持して元に戻すとコミットとして表示されませんか?私は 'rebase'は、決して起こったことのないようなふざけた魔法をやることができると思いますか? – ack

+0

一時的なブランチで実験をコミットし、それを保持することを決定した場合、一時的なブランチでコミットとして表示され、メインのブランチに戻すときにマージコミットとして表示されます。これに対する例外は、その間に機能ブランチに他のコミットがない場合です。この場合、デフォルトのマージ動作は早送りマージで、実験結果はメインブランチの履歴に直接表示されます。ブランチ。 –

0

従来のvcsを使用すると、ファイルシステムの別の場所から再チェックアウトするだけで、現在の作業はそのままになります。

これは、git cloneを使用して行うことができます。私は特に、2つの別々の開発ラインを維持する標準的な方法として、同じマシンに2つのクローンを持つことは好きではありません。しかし、あなたのユースケースには意味があると思います。

関連する問題