我有两个文件想发送自己的新存储库,但我也想保留自己的历史记录,以便新的存储库已经有了一些历史。
我尝试搜索并找到了这些帖子:
但我无法弄清楚如何编写命令。我试着根据上面的答案运行这个:
git clone repo
git remote rm origin
cd repo
git filter-branch --tree-filter 'git rm --cached --ignore-unmatch "filename1" "filename2"' -- --all
我期望清理当前的存储库并仅保留这两个文件及其历史记录,然后我可以将其作为新的子模块推送,但在运行命令后,我的所有文件都保留在存储库中。
答案 0 :(得分:0)
我设法删除了历史记录中的所有文件,除了我需要的两个文件。我必须查看整个历史记录,找出重命名的所有文件的名称,并详细说明一个大文件和文件夹名称列表。然后我运行这些命令:
git clone repo
git remote rm origin
cd repo
git filter-branch --force --index-filter \
'git rm --cached --ignore-unmatch "folder1" "file1" "etc" -r -f' \
--prune-empty --tag-name-filter cat -- --all
git remote add origin new_bare_empty_remote
git push -u origin master