Created
March 16, 2015 17:31
-
-
Save whistler/de34b77aba2221ed8b2e to your computer and use it in GitHub Desktop.
Copy files to another repository while saving git history
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# copied from http://gbayer.com/development/moving-files-from-one-git-repository-to-another-preserving-history/ | |
git clone <git repository A url> # clone source repository | |
cd <git repository A directory> | |
git remote rm origin # to make sure it doesn't affect the original repository | |
git filter-branch --subdirectory-filter <directory 1> -- --all # remove all files other than the ones needed | |
mkdir <directory 1> # move them into another directory where they will be stored in the destination repository (if needed) | |
mv * <directory 1> | |
git add . | |
git commit | |
git clone <git repository B url> # clone destination repository | |
cd <git repository B directory> | |
git remote add repo-A-branch <git repository A directory> # add source as a remote | |
git pull repo-A-branch master # pull | |
git remote rm repo-A-branch |
@simonferronforget, You can use --allow-unrelated-histories
to force the merge to happen. Source: StackOverflow
Also see https://gist.github.com/trongthanh/2779392 - same recipe, with more explanations, and https://help.github.com/articles/splitting-a-subfolder-out-into-a-new-repository/
fatal: /Users/liu/work/static-pro/: '/Users/liu/work/static-pro1/' is outside repository.
how should I do?
Hi @whistler after moving files at line 7 I've moved to but the .git folder hasn't been copied so git add . doesn't work. Do u have any suggestion?
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Hello, I'm trying to do this under Windows 7 and Git 2.13.3.windows.1 and I get following error:
...
> git remote add feature/singleLevelTest /c/stash/test_manager/.git
Any idea why ?