2012-12-12 46 views
1

我的git存储库中有一个文件,它有时会在另一个git存储库中接收错误修复。我希望能够将这些提交拉入我的回购。如何从另一个git存储库的子目录中更改文件

例如:

project_a/ 
    /.git 
    /src/somefile.cpp 

project_b/ 
    /.git 
    /utils/converters/apples/bananas/src/somefile.cpp 

我想拉从承诺到project_bproject_asomefile.cpp

回答

2

您可以将project_b作为远程添加,然后从中抓取并挑选。试试这样的:

git remote add project_b /path/to/project_b/ 
git fetch project_b 

现在你可以从project_b挑樱桃。如果你想提交在project_b的主分支的末端,只是做

git cherry-pick project_b/master 

或者,你可以绕过远程读取/樱桃采摘的东西,只是直接从project_b补丁就像这样:

git --git-dir=/path/to/project_b/.git format-patch -k -1 \ 
--stdout <commit SHA> somefile.cpp | git am -3 -k 

Adapted from this answer。)

3

如果你有相同的名称,但在不同的文件夹中的文件(让我们假设你有project_b合并成一个子目录),那么你需要做的樱桃采撷在以下F ashion

git cherry-pick project_b/master --strategy=subtree 
相关问题