来自:https://help.github.com/articles/splitting-a-subfolder-out-into-a-new-repository/
您可以将Git存储库中的文件夹转换为全新的存储库。如果您创建存储库的新克隆,则将文件夹拆分到单独的存储库时,不会丢失任何Git历史记录或更改。
1. 打开Git Bash,将当前工作目录更改为要创建新存储库的位置;
2. 克隆包含子文件夹的存储库
git clone https://github.com/ USERNAME / REPOSITORY-NAME(克隆的存储库)
3. 将当前工作目录更改为克隆的存储库。
cd REPOSITORY-NAME
4. 从存储库(REPOSITORY-NAME)中的文件中过滤掉其余子文件夹
运行git filter-branch,提供以下信息:
FOLDER-NAME:项目中要从中创建单独存储库的文件夹。
(提示: Windows用户应使用/分隔文件夹。)
BRANCH-NAME:当前项目的默认分支,例如,master或gh-pages。
git filter-branch --prune-empty --subdirectory-filter FOLDER-NAME BRANCH-NAME(#过滤目录中的指定分支并删除空提交重写)
存储库现在应该只包含子文件夹中的文件。
5. 在Github上创建一个新GitHub存储库的快速设置页面的顶部,单击 复制远程存储库URL。
检查存储库的现有远程名称。例如,origin或者upstream是两种常见的选择。
git remote -v
origin https://github.com/ USERNAME / REPOSITORY-NAME .git(fetch)
origin https://github.com/ USERNAME / REPOSITORY-NAME .git(push)
6. 使用您在步骤7中复制的现有远程名称和远程存储库URL为新存储库设置新的远程URL。
git remote set-url origin https://github.com/ USERNAME / NEW-REPOSITORY-NAME .git
7. 使用新的存储库名称验证远程URL是否已更改。
git remote -v
#验证新的远程URL
源https://github.com/ USERNAME / NEW-REPOSITORY-NAME .git(fetch)
origin https://github.com/ USERNAME / NEW-REPOSITORY-NAME .git(push )
8. 将更改推送到GitHub上的新存储库。
git push -u origin BRANCH-NAME
网友评论