First of all, I should explain the mess I have gotten myself into in order to explain this issue. (This was a windows form application with .Net Framework version 4.7.2.) I had the idea while thinking outside of the proverbial box, that a shortcut to a problem I was facing was to make a complete copy of an entire project’s source code and rename the project a new name. All of the files with the previous project name were renamed to the name of the new project. Also, in all of the files, where this name appeared, was edited to be the name of the new project file.
Now, here is the problem, this created a kind of ghost git and GitHub repository. There seems to be a local repository, but on GitHub there was nothing. But when I tried to create a new GitHub repository online, the files from the old project seemed to be referenced.
I closed the Visual Studio IDE and went to the command line to try to delete the local git repository with
git branch –delete master
but it returned with
error: cannot delete branch ‘master’ used by worktree at ‘C:/source/DHS-Solution’
So I think this means I need to find a way to disconnect from the git and GitHub through the IDE. Please advise.
It seems like you were trying to create a whole new independent project (I will call it copy
) based off one of your other projects (I will call it original
).
If copy
is supposed to be a brand-new project with a new history that starts with the current (renamed) content of original
, then you need to delete the hidden folder .git
from copy
‘s working directory, initialize a new repository with git init
, stage and commit the current content, create a new repository on GitHub for copy
, add the new remote to copy
with git add remote origin <copy_url>
, and finally push to the remote.
Instead, if copy
is supposed to be a parallel project of original
and retain original
‘s history, then you could create a fork. To do that, go to original
‘s repository on GitHub, click on the fork
arrow, select Create a new fork
, and clone the newly created repo. The cloned repository (copy
) will already point to the new remote, and all the changes committed to it won’t affect original
, unless a PR from copy
to original
is performed.
Lastly,
went to the command line to try to delete the local git repository with git branch –delete master
a branch represents only a line of development. It is not your repository, even if this is your main line of development. If you want to delete a repository along with its history of changes, you need to delete the hidden folder .git
in the project’s working directory.
Also, you cannot delete your currently checked out branch, you need to select a different branch to delete the current one. Furthermore, you can only delete branches whose changes are included in the current branch, unless you perform a forced deletion.
1
git branch --delete master
likely failed because you currently have the master
branch checked out, and git will not allow you to delete the branch you are currently working from.
From your question however, I assume you didn’t want to delete the branch but rather remove git from the local repository itself.
If, as you described, you have a new remote (GitHub) repository created, you don’t have to “delete” or “remove” anything, you can simply change the remote origin of the your local git repository:
git remote set-url origin <url to your remote (GitHub) repository>
From there pushing the local repository to origin
will push to the new remote repository you’ve set up:
git add .
git commit
git push origin master
(*note: depending on the state of your new remote repository, you may have to address merge conflicts or git push --force origin master
.)
If you do want to delete git from the local repository: Everything related to git is contained in the .git directory of your local repositry. If you simply rm -rf .git/
from the root directory of your local repository, it will no longer be seen as a git repository. If you do this via the command line or otherwise, VS Code will automatically recognize that the directory is no longer a git repository.
Thegrip is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
1