将repo的子目录分叉为github中的不同repo



我想为League of Moveable Type的Chunk字体创建一个bower包/样式表,以及其他类似的任务。

我想知道是否有可能在新的repo中将他们的"webfont"目录分叉到"font"目录中。这将允许我创建一个bower.json文件和样式表。

谢谢,

我不认为你可以直接在github上的web UI上分叉它,但如果你可以手动克隆和推送它,你可以做以下

  • 克隆回购

    git clone https://github.com/theleagueof/chunk
    
  • 使用git-subtree命令为文件夹专用创建分支

    git subtree split --prefix=folder_name -b new_branch
    
  • 创建一个新的github回购
  • 将此新回购添加为远程

    git remote add upstream https://github.com/user/repo
    
  • 推送子树

    git push upstream new_branch
    

Github在https://help.github.com/en/articles/splitting-a-subfolder-out-into-a-new-repository:

你可以将Git存储库中的文件夹变成一个全新的存储库。

如果创建存储库的新克隆,则不会丢失任何您的Git历史记录或在将文件夹拆分为单独的文件夹时发生的更改存储库。

  1. 打开终端。

  2. 将当前工作目录更改为要创建新存储库的位置。

  3. 克隆包含子文件夹的存储库。

    $ git clone https://github.com/USERNAME/REPOSITORY-NAME
    
  4. 将当前工作目录更改为克隆的存储库。
    $ cd REPOSITORY-NAME
    
  5. 要从存储库中的其他文件中筛选出子文件夹,请运行git-filter分支,提供以下信息:

    • 文件夹名称:您希望在项目中创建一个单独存储库的文件夹。

    • 分支名称:当前项目的默认分支,例如主页或gh页。

    $ git filter-branch --prune-empty --subdirectory-filter FOLDER-NAME  BRANCH-NAME 
     # Filter the specified branch in your directory and remove empty commits
     > Rewrite 48dc599c80e20527ed902928085e7861e6b3cbe6 (89/89)
     > Ref 'refs/heads/BRANCH-NAME' was rewritten 
    

    存储库现在应该只包含子文件夹中的文件。

  6. 在GitHub上创建一个新的存储库。

  7. 在新GitHub存储库的快速设置页面顶部,单击剪贴板以复制远程存储库URL。

    • 复制远程存储库URL字段
  8. 请检查存储库的现有远程名称。例如,原点或上游是两种常见的选择。

    $ git remote -v
     > origin  https://github.com/USERNAME/REPOSITORY-NAME.git (fetch) 
     > origin  https://github.com/USERNAME/REPOSITORY-NAME.git (push)
    
  9. 使用现有的远程名称和您在步骤7中复制的远程存储库URL。
    git remote set-url origin
    https://github.com/USERNAME/NEW-REPOSITORY-NAME.git
    
  10. 请验证远程URL是否已更改为您的新存储库名称。
    $ git remote -v
     # Verify new remote URL
     > origin  https://github.com/USERNAME/NEW-REPOSITORY-NAME.git (fetch)
     > origin  https://github.com/USERNAME/NEW-REPOSITORY-NAME.git (push)
    
  11. 将您的更改推送到GitHub上的新存储库。
    git push -u origin BRANCH-NAME
    

最新更新