作为在github中的不同回购的repo的fork子目录

时间:2015-03-27 16:53:15

标签: git github bower

我想为其他类似任务中的Moveable Type's Chunk typeface联盟创建一个凉亭包/样式表。

我想知道是否有可能将他们的" webfonts"目录成"字体"新仓库中的目录。这将允许我创建一个bower.json文件和样式表。

谢谢,

2 个答案:

答案 0 :(得分:14)

我认为你不能直接在github上的web UI上分叉它,但是如果你可以克隆它并手动推送东西,你可以执行以下操作

  • 克隆回购

    git clone https://github.com/theleagueof/chunk
    
  • 使用仅限文件夹的git subtree命令创建分支

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

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

    git push upstream new_branch
    

答案 1 :(得分:1)

Github在https://help.github.com/en/articles/splitting-a-subfolder-out-into-a-new-repository上发布了一篇文章,介绍了如何做到这一点:

  

您可以将Git存储库中的文件夹转换为全新的文件夹   存储库。

     

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

     
      
  1. 打开终端。

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

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

    $ git clone https://github.com/USERNAME/REPOSITORY-NAME
    
  6.   
  7. 将当前工作目录更改为克隆的存储库。
    $ cd REPOSITORY-NAME
    
  8.   
  9. 要从存储库中的其余文件中过滤出子文件夹,请运行git filter-branch,并提供以下信息:

         
        
    • 文件夹名称:您要在其中创建单独存储库的项目文件夹。

    •   
    • 分支名称:当前项目的默认分支,例如master或gh-pages。

    •   
    $ 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 
    
         

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

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

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

         
        
    • 复制远程存储库URL字段
    •   
  14.   
  15. 检查存储库的现有远程名称。例如,起源或上游是两个常见的选择。

    $ git remote -v
     > origin  https://github.com/USERNAME/REPOSITORY-NAME.git (fetch) 
     > origin  https://github.com/USERNAME/REPOSITORY-NAME.git (push)
    
  16.   
  17. 使用现有的资源为新存储库设置新的远程URL   您在步骤7中复制的远程名称和远程存储库URL。
    git remote set-url origin
    https://github.com/USERNAME/NEW-REPOSITORY-NAME.git
    
  18.   
  19. 验证您的新存储库名称已更改了远程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)
    
  20.   
  21. 将所做的更改推送到GitHub上的新存储库。
    git push -u origin BRANCH-NAME
    
  22.