git merge - 是否可以在Git中只提取一个文件?

我正在开发一个Git分支,它有一些破坏的测试,我想从另一个已经修复的分支中提取(合并更改,而不仅仅是覆盖)这些测试。

我知道我能做到

git pull origin that_other_branch

但这将尝试合并许多其他文件,因为我尚未准备好。

是否可以从另一个分支中提取和合并指定的文件(而不是所有内容)?

这不仅仅是对一个文件的Git pull请求的重复,因为该问题的所有答案都是如何将本地更改的文件还原到存储库版本,而不更改任何分支。

h22 asked 2019-06-10T06:39:29Z
3个解决方案
213 votes

在研究这个时,我只是想出了一个稍微简单的方法:

git fetch {remote}
git checkout FETCH_HEAD -- {file}
Chris answered 2019-06-10T06:40:20Z
109 votes

您可以通过以下方式获取然后仅检出一个文件:

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

关于git checkout命令:<revision> - 分支名称,即origin/master<yourfilepath>不包含存储库名称(您可以通过单击GitHub上文件页面上的copy path按钮获得),即README.md

aleroot answered 2019-06-10T06:39:54Z
1 votes
git checkout master -- myplugin.js

master =分支名称

myplugin.js =文件名

Mawardy answered 2019-06-10T06:40:53Z
translate from https://stackoverflow.com:/questions/16230838/is-it-possible-to-pull-just-one-file-in-git