如果您创建仓库的新克隆副本,则将文件夹拆分为单独的仓库时不会丢失任何 Git 历史记录或更改。
-
打开 Terminal(终端)Terminal(终端)Git Bash。
-
将当前工作目录更改为您要创建新仓库的位置。
-
克隆包含该子文件夹的仓库。
$ git clone https://主机名/USERNAME/REPOSITORY-NAME
-
将当前工作目录更改为您克隆的仓库。
$ cd REPOSITORY-NAME
-
To filter out the subfolder from the rest of the files in the repository, run
git filter-repo
, supplying this information:-
FOLDER-NAME
: The folder within your project where you'd like to create a separate repository.<div class="extended-markdown tip border rounded-1 mb-4 p-3 color-border-info color-bg-info f5"> **提示:**Windows 用户应使用 `/` 来分隔文件夹。 </div>
$ git filter-repo --path FOLDER-NAME1/ --path FOLDER-NAME2/ # Filter the specified branch in your directory and remove empty commits > Rewrite 48dc599c80e20527ed902928085e7861e6b3cbe6 (89/89) > Ref 'refs/heads/BRANCH-NAME' was rewritten
The repository should now only contain the files that were in your subfolder(s).
-
-
在 GitHub Enterprise Server 上创建新仓库。
-
在新 GitHub Enterprise Server 仓库 Quick Setup(快速设置)页面的顶部,单击 可复制远程仓库 URL。
提示: 有关 HTTPS 与 SSH URL 之间的差异,请参阅“关于远程仓库”
-
检查仓库现有的远程名称。 例如,
源仓库
或上游仓库
是两种常见选择。$ git remote -v > origin https://主机名/USERNAME/REPOSITORY-NAME.git (fetch) > origin https://主机名/USERNAME/REPOSITORY-NAME.git (push)
-
使用现有的远程名称和您在步骤 7 中复制的远程仓库 URL 为新仓库设置新的远程 URL。
git remote set-url origin https://主机名/USERNAME/NEW-REPOSITORY-NAME.git
-
使用新仓库名称验证远程 URL 是否已更改。
$ git remote -v # Verify new remote URL > origin https://主机名/USERNAME/NEW-REPOSITORY-NAME.git (fetch) > origin https://主机名/USERNAME/NEW-REPOSITORY-NAME.git (push)
-
将您的更改推送到 GitHub Enterprise Server 上的新仓库。
git push -u origin BRANCH-NAME