四时宝库

程序员的知识宝库

将Git存储库中的文件夹转换为全新的存储库

前提

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

步骤

  • 打开终端。
  • 将当前工作目录更改为要创建新存储库的位置。
  • 克隆包含子文件夹的存储库。
$ git clone https://github.com/USERNAME/REPOSITORY-NAME
  • 将当前工作目录更改为克隆的存储库。
$ cd REPOSITORY-NAME
  • 要从存储库中的其余文件中过滤掉子文件夹,请运行git filter-branch,提供以下信息:
  • FOLDER-NAME:项目中要从中创建单独存储库的文件夹。
  • BRANCH-NAME:当前项目的默认分支,例如,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

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

  • 在GitHub上创建一个新的存储库。
  • 在新GitHub存储库的“快速设置”页面的顶部,单击以复制远程存储库URL。

提示:有关HTTPS和SSH URL之间差异的信息,请参阅“ 我应该使用哪个远程URL? ”

  • 检查存储库的现有远程名称。例如,origin或者upstream是两种常见的选择。
$ git remote -v
> origin https://github.com/USERNAME/REPOSITORY-NAME.git (fetch)
> origin https://github.com/USERNAME/REPOSITORY-NAME.git (push)
  1. 使用您在步骤7中复制的现有远程名称和远程存储库URL为新存储库设置新的远程URL。
git remote set-url origin https://github.com/USERNAME/NEW-REPOSITORY-NAME.git
  • 使用新的存储库名称验证远程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)
  • 将您的更改推送到GitHub上的新存储库。
git push -u origin BRANCH-NAME

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接