我想将所有文件和文件夹复制到一个文件夹中,保留git历史记录。
但不是来自提交中其他文件夹的任何文件。
答案 0 :(得分:1)
我经常使用这种方法,所有功劳都归功于http://st-on-it.blogspot.co.uk/2010/01/how-to-move-folders-between-git.html
将现有repo或git clone的副本复制到repocopy
无论你做什么,都不要推!
cd repocopy
git checkout yourbranch
git filter-branch --subdirectory-filter yourfolder -- -- all
mkdir -p yourfolder
git status
.gitignore中的所有文件都将保留,以便正常删除
rm ignoredfiles
然后git mv(而不是mv)将剩余的文件和文件夹放到你的文件夹中
git mv yourfiles yourfolder
git commit -m "yourfolder: copy of yourfolder in repocopy"
现在转到主项目
cd ../yourproject/
git remote add repo-repocopy ../repocopy
git fetch repo-repocopy
git branch feature_repocopy repo-repocopy/yourbranch
git checkout feature_yournewbranch
git merge --no-ff feature_repocopy