I have a git repository with remote foo.
foo is a web app, is contains some files and dirs directly in its root:
Rakefile
app
...
public
script
My main git repository is a larger system which comprises this web app. I want to pull the commits from foo, but I need the files to reside inside the web
dir. So they should become web/app
, web/public
, etc.
I don't want to use foo as a submodule. I want to merge foo into the main repository and then get rid of it.
This answers my question:
http://www.kernel.org/pub/software/scm/git/docs/howto/using-merge-subtree.html
The up-to-date resources for subtree merging are:
Cite from How to use the subtree merge strategy:
In this example, let’s say you have the repository at
/path/to/B
(but it can be an URL as well, if you want). You want to merge the master branch of that repository to thedir-B
subdirectory in your current branch.Here is the command sequence you need:
$ 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
See also for comments the article "Subtree merging and you".
Here's a community-wiki version of your answer if you'd like to accept it as the answer.
This answers my question:
http://www.kernel.org/pub/software/scm/git/docs/howto/using-merge-subtree.html
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With