如何从git存储库中仅提取特定文件?

时间:2013-12-27 00:33:20

标签: git git-pull

我有2个存储库A和B.

我想只将部分文件从存储库A提取到存储库B.

有没有办法做到这一点?

3 个答案:

答案 0 :(得分:0)

如果您不介意拉动整个存储库A(即您不担心由于某种原因节省下载时间),您应该可以转到另一个分支:

git pull --no-commit <URI for repository A> master:temp-branch

然后你可以自动合并temp-branch或者从中选择提交(如果你真的想要合并一些补丁而不是文件,或者如果文件是在一个或多个方便的提交中添加的话)。

或者,如果您不想要存储库A的历史记录,但将其所有文件放在某处可以:

git clone --depth 1 <URI for repository A> somewhere

答案 1 :(得分:0)

Git不是面向文件的SCM。历史记录基于树,因此您不能要求Git仅从远程存储库中检出单个文件。

但是,如果您正在使用存储库浏览器界面(例如,由Github提供)或gitweb,您当然可以从远程存储库下载单个原始文件。

答案 2 :(得分:0)

如果你想处理不提交的文件,一个选项就是在git之外做,即设置

files/project_1 # Includes a .git directory at this level.
files/project_2 # Same here.

你可以做到

cp files/project_2/your_spec*.* files/project_1/

然后

cd files/project_1
git add .
git commit -m"msg"