2016-05-27 7 views
4

私はvvn.caqu.c というファイルを持っています。私はvvn.cに変更しました。私はgitでコミットしています。 チェリーピックアップと同じ変更をaqu.c にする方法唯一の違いはAPIです。 aqu.cは、私はそれを行う方法がわからないunions_function_names()1つのファイルから別のファイルに変更をチェックする方法は?

としてAPIを含んでいるのに対し、

vvn.cvvn_function_names()

としてAPIを含んでいます。 私は同じファイルをチェリーピッキングすることについて知っています。 これを行う方法はありますか?

+0

https://stackoverflow.com/a/16527024/702456本当にあなたが望む答えです。他の誰かがここで終わるなら、それは言及されるべきです –

答えて

3
正確チェリーピック

ない、しかし、あなたが使用することをお勧めします:

git checkout <branch or sha of commit> -- filename

この別のブランチでそのバージョンにより、ファイルをチェックアウト。 (つまり、2つの別々のブランチからファイルへの変更を実際にマージする必要がない場合)

他の可能性はdiffを生成することですコミットの範囲が1つのファイルに限定されます)、diffを適用します。チェックアウト:How to diff the same file between two different commits on the same branch?

+0

あなたは最初のものについての例を挙げてもらえますか? – AQU

+0

あなたの場合、それは次のようになります: 'git checkout branch-witch-aqu-changes - aqu.c' –

+0

Hmm。私は同じブランチに両方のファイルを持っています。 'vvn.c'と' aqu.c'は異なるディレクトリにあります。だから今チェックアウトするには? – AQU

3

基本的には、vvn.cの変更点を差分してaqu.cに適用する必要があります。例えば、ここに:How to apply a Git patch to a file with a different name and path?

しかし、これはかなり難しいことです。あなたはなぜ同じように異なったファイル名を持っているので、同じ変更を加えるべきですか?

おそらく、別のアプローチを考え出す方がよいでしょう。例えば。 Cでは#includeを使用して共通部分を別のファイルに抽出することができます。

関連する問題