我可以帮您进行翻译。以下是需要翻译的内容:
我有一个远程foo的git存储库。
foo是一个Web应用程序,它在其根目录中直接包含一些文件和目录:
Rakefile
app
...
public
script
我的主要git仓库是一个更大的系统,包括这个web应用程序。我想从foo中提取提交记录,但我需要文件驻留在web
目录内。所以他们应该成为web/app
,web/public
等。
我不想使用foo作为子模块。我想将foo合并到主仓库中,然后摆脱它。
我可以帮您进行翻译。以下是需要翻译的内容:
我有一个远程foo的git存储库。
foo是一个Web应用程序,它在其根目录中直接包含一些文件和目录:
Rakefile
app
...
public
script
我的主要git仓库是一个更大的系统,包括这个web应用程序。我想从foo中提取提交记录,但我需要文件驻留在web
目录内。所以他们应该成为web/app
,web/public
等。
我不想使用foo作为子模块。我想将foo合并到主仓库中,然后摆脱它。
在这个例子中,假设你拥有
/path/to/B
存储库(但它也可以是一个URL)。 你想将该存储库的主分支合并到当前分支中的dir-B
子目录中。
以下是您需要的命令序列:
$ git remote add -f Bproject /path/to/B
$ git merge -s ours --no-commit Bproject/master
$ git read-tree --prefix=dir-B/ -u Bproject/master
$ git commit -m "Merge B project as our subdirectory"
$ git pull -s subtree Bproject master
如果您想接受此回答,这里是一个社区维基版本。
这个回答解决了我的问题:
http://www.kernel.org/pub/software/scm/git/docs/howto/using-merge-subtree.html