1

Git Flow を使用して新しい機能 (機能 A) を開始しましたが、まだ変更をコミットしていません。

次に、新しい機能 (機能 B) を作成する必要がありましたが、機能 A からのコミットされていない変更を含めたくありません。

新機能が開発ブランチの現在の状態から開始されなかった理由がわかりません! まだコミットされていない機能 A からのすべての変更が含まれています。

4

3 に答える 3

2

これは git の通常の動作であり、git フローとは何の関係もありません。
ブランチを切り替える (チェックアウトする) ときに、作業ディレクトリにコミットされていない変更がある場合、次の 2 つのシナリオが考えられます。

  1. 他のブランチのチェックアウトは、これらのコミットされていない変更を上書きしません。チェックアウトは成功し、作業ディレクトリにまだコミットされていない変更があるチェックアウトされたブランチにいます。
  2. 他のブランチのチェックアウトは、これらのコミットされていない変更の一部を上書きします: チェックアウトは失敗します。

git flow feature start <name>まさにそれを行います: 新しいブランチを作成し、チェックアウトします。競合がないため、シナリオ 1 が発生します。

これを自問してください:
ブランチを切り替えた後、コミットされていない変更が作業ディレクトリに残らない場合、代わりにどこに移動する必要がありますか?

トーマスが正しく指摘しているように、git stashここであなたを助けることができます. または、とにかく頻繁にコミットすることになっているため、単に機能 A のブランチに変更をコミットすることもできます。

于 2013-03-17T10:11:27.960 に答える
1

私は Git Flow に詳しくありませんgit stashが、ここで役立つでしょうか?

于 2013-03-17T10:06:02.637 に答える
1

現在、featureAコミットされていない変更があるブランチにいて、コミットされていない変更を含まない新しいブランチを作成したい場合は、次のことを試してください。

git stash
git checkout -b featureB
//now in branch 'featureB` you will no longer have the uncommitted changes
//in order to continue your work on 'featureA':
git checkout featureA
git stash pop
于 2013-03-17T10:12:03.197 に答える