回答編集履歴

1

回答になっていなかった分追記

2017/05/17 12:40

投稿

tamoto
tamoto

スコア4105

test CHANGED
@@ -5,3 +5,13 @@
5
5
  「ファイルをマージする」という言い回しが気になります。
6
6
 
7
7
  gitが管理するのは「commit」単位であり、コミットというのは「(正確な表現ではないですが)変更操作」そのものを表します。操作はファイル単位ではないのです。そして、ブランチはその「コミットを数珠つなぎにした一連の変更の累積」と見ることができます。質問の「他ブランチを自ブランチにマージする」というのは、丁寧に言い換えると「他ブランチが積み重ねた変更操作を、自ブランチにも反映させる」ということになります。この表現が目的の操作と合致しているなら、その通りに「他ブランチを自ブランチにマージ」が正解の操作になります。
8
+
9
+
10
+
11
+ 以下回答です。
12
+
13
+ 「特定ブランチが積み重ねた変更の中で、特定の単一ファイルの変更累積のみを取り入れる」というのは、一般的に通常のgit操作ではやるものではないです。gitに限らずバージョン管理というのは「積み重ねの整合性」というものを重視します。「他ブランチが積み重ねた変更の中の特定ファイルの変更」というのは、他ブランチが組み上げてきた履歴の「整合性」に含まれているため、これをピックアップして特定ブランチに取り込むというのは自ブランチの整合性の破壊につながる危険があるため、バージョン管理の表面的な操作ではサポートされないのです。
14
+
15
+ あまりオススメしませんが、特定ファイルの状態を取り込む方法としては、`git checkout <他ブランチ> ./<目的のファイル>` とすると、他ブランチでの目的のファイルの状態がワーキングディレクトリに読み込まれるので、それを新しくコミットすれば完了です。
16
+
17
+