git detach subfolder to their own repository
If you create a new clone of a repository, you can split the folder into another repository without losing your Git history or changes.
Open Git Bash.
Change your current working directory to where you want to create the new repository. 3. Clone the repository including subfolders.
$ git clone https://github.com/USERNAME/REPOSITORY-NAME
Change your current working directory to the cloned repository.
$ cd REPOSITORY-NAME
Five. To filter subfolders from the rest of the files in the repository, use ‘git-filter-repo’, run git filter-repo with the following arguments:
- “Folder name”:
A folder within a project in which to create another repository.
Up: Windows users must use “/” to separate folders.
$ git filter-repo --path FOLDER-NAME/ # Filter the specified branch in your directory and remove empty commits > Rewrite 48dc599c80e20527ed902928085e7861e6b3cbe6 (89/89) > Ref 'refs/heads/BRANCH-NAME' was rewritten
Now the repository will only contain the files that were in the subfolders.
[Create a new repository] (https://docs.github.com/en/repositories/creating-and-managing-repositories/creating-a-new-repository) on GitHub.
At the top of your new repository, click the GitHub.com Quick Setup page.
Copy the remote repository URL.
Up: See [About remote repositories] (https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories).
Add a new remote name using the URL you copied for your repository. For example, Origin or Upstream are two common choices.
git remote add origin https://github.com/USERNAME/REPOSITORY-NAME.git
Make sure the remote URL is added with the new repository name.
$ 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)
Push your changes to your new repository on GitHub.
git push -u origin BRANCH-NAME