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

时间:2013-04-26 07:20:24

标签: git git-merge git-pull git-fetch

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

我知道我能做到

git pull origin that_other_branch

但是这会尝试合并许多其他文件,因为我还没准备好。

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

这不是 Git pull request for just one file 的重复,因为该问题的所有答案都是如何将本地更改的文件还原到存储库版本,而不更改任何分支。

5 个答案:

答案 0 :(得分:225)

这是我在研究时提出的一种稍微简单的方法:

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

答案 1 :(得分:122)

您可以通过这种方式获取并仅检出一个文件:

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

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

答案 2 :(得分:7)

git checkout master -- myplugin.js
  

master =分支名称

     

myplugin.js =文件名

答案 3 :(得分:3)

@Mawardy的回答对我有用,但是我的更改在远程进行,因此我必须指定来源

git checkout origin/master -- {filename}

答案 4 :(得分:0)

是的,过程如下:

.hentry {
background-color: transparent;
border: none;