2013-04-26 13 views
110

私はいくつかの壊れたテストを持っているGitブランチに取り組んでいます。これらのテストは既に修正されている別のブランチから引き出す(変更をマージするだけです)。Gitで1つのファイルしか取得できませんか?

私は

git pull origin that_other_branch 

を行うことができます知っているが、これはそのために、私はまだ準備ができていないよ、他のファイルの多くをマージしようとします。

指定したファイルだけを(ほかではなく)別のブランチから引き出してマージすることはできますか?その質問へのすべての答えは、すべての枝を変更せずに、リポジトリのバージョンにローカルに変更されたファイルを元に戻す方法があるよう

これはGit pull request for just one fileの複製ではありません。

答えて

99

あなたがフェッチして、このように一つだけのファイルをチェックアウトすることができます:git checkoutコマンドについて

git fetch 
git checkout -m <revision> <yourfilepath> 
git add <yourfilepath> 
git commit 

<revision> - すなわちorigin/master <yourfilepath>は、リポジトリ名が含まれていない、支店名(あなたはGitHub上のファイルページのcopy pathボタンをクリックすることで得ることができます)、すなわちREADME.md

+19

-mスイッチで必要なハッシュコードは、git branch -vで出力できます。驚くばかり! – h22

+2

優れています。これは複数の機会に私を助けてくれました。明確にするために、-mフラグは、1つのファイルを取得したいコミットのハッシュに満足しているようです。 – rd108

+1

これも私のために働いた。しかし、復帰を見つけるためにリモートブランチにgit logを実行しました。 $ git log remotes/origin/master – Dan

190

ここではちょっとだけ簡単な方法がありますこれを調べる:

git fetch {remote} 
git checkout FETCH_HEAD -- {file} 
+2

これは正解です – Picrasma

+2

致命的:無効な参照:FETCH_HEAD –

関連する問題