I am using Git (on bitbucket) and have a repository with my code. I now want to use this code and largely modify it for another project all together.
I understand that I should abstract the common components to a third library and use that but for the sake of argument, if I want to clone the current repository into a new one, is this possible without manually just copying the code and pushing to a new repo?
First clone the repository you want to work with. This step could be skipped if you want it all to happen in the folder you are already in.
git clone file:///path/to/repo/
Cloning will bring over the remotes specified in that directory. So you'll need to remove the remotes you don't want.
git remote rm <remote>
And add the ones you do, after you have created your remote repository.
git remote add origin <url>
You will also want to --set-upstream-to
, or -u
to tell git this is the remote repository this branch will update to, presuming you are on the main (or default) branch.
git push -u origin main
Then you'll need to decide which branches to keep and add to the remote. If you want to push all of them, just do git push --mirror
. This will push all your tags and your remotes. But since we edited your remotes in an earlier step, it shouldn't be a problem.
If you only want to keep a few, you can git push -u origin <branch>
each one you want.
You can simply use set-url
to push your existing repository into a new repository:
cd file:///path/to/repo/
git remote set-url origin <url-of-new-repo>
git push -u origin master
you can either clone the existing repo and remove the remotes, or you can copy the folder on the filesystem and change/remove the remotes in one copy.
but as your question is not too clear, here another thing that is possible:
add another remote to an existing remote (besides origin) and push to that remote.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With