简体   繁体   中英

Moving subfolder from one git repo to another preserving history

I have the typical problem of splitting up one large repo into smaller ones, so I searched and came across this: http://gbayer.com/development/moving-files-from-one-git-repository-to-another-preserving-history/

git clone <git repository A url>
cd <git repository A directory>
git remote rm origin
git filter-branch --subdirectory-filter <directory 1> -- --all
mkdir <directory 1>
mv * <directory 1>
git add .
git commit

It would have worked for me, except that my clone is a shallow one. Since the repo is large, I had to clone with depth 0.
Now, what are my options?
Should I:

  • Clone the repo at its full depth in the first step (OR)
  • Not detach the remote in Step 3 and fetch all after filtering subdirectories (OR)
  • Do anything else?

Even without cloning again, you can convert your current repo from shallow to "unshallow"

git fetch --unshallow

Then, you can proceed with your git filter-branch

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM