2012-03-22 21 views
7

私は3つのブランチを持っています(マスター、テスト、機能と呼ぶ)。 3つは共有されているので、他の人に問題を起こすことなくそれらのいずれかを再構築することはできません。現在のところ、3つの支店のすべてが分岐していません(早送りはありません)。したがって、リベースはオプションではないため、結局いくつかのマージが必要になります。Gitはリベースなしで単一のファイルをマージします

しかし、私は機能がマスターから分割され、テストでMakefileが追加されたので、Makefileをテストから機能に取り込みたいと思います。私はではありません。しかし、は、2つのブランチ間の他の変更をマージしたいと考えています。

Makefileをフィーチャーに追加するだけで、フィーチャーブランチのMakefileにさらに追加した場合、フィーチャーをテスト(およびマスター)にマージする際にマージの競合が発生します。 。

私はgit-cherry-pickを行うことができました。しかし、テストではMakefileに複数のコミットがありました。チェリーピックアップですべてのコミットをフィーチャーに入れようとするよりも良い方法があると思います。

答えて

12

あなたはただこれは、特定のファイルを読み込むことができ

git checkout branch_name <path(s)>

を行うことができますが、あなたはまた、ワイルドカードと

。なお、ディレクトリ

使用することができます。

  • パスは相対的なものを
  • パスはgitがブランチを切り替わらないようにするので、gettihgの後にコミットすることができますファイル
+0

ワウ - 私はSHAのコミットに切り替えるためにチェックアウトを使用しましたが、HEADに戻ってファイルに戻ってきましたが、2つの方法を組み合わせることはできませんでした。これは振り返って分かりますが、ありがとう! – chimeracoder

関連する問題