无法删除 Git 存储库中的远程源

Unable to delete origin remote in Git Repository

我以某种方式弄乱了我的本地托管存储库,但不确定如何处理。如果我创建该项目的新克隆并查看我的遥控器,我会得到以下信息。请注意,GitHandle 是一个正在运行的 SSH 别名。

为清楚起见,我将 GitHandle:/opt/git/www.project2.com.git 的存储库称为 "correct" 存储库,将 GitHandle:/opt/git/www.project1.local.git 的存储库称为 "incorrect" 存储库。

bash-4.4$ git clone GitHandle:/opt/git/www.project2.com.git htdocs
bash-4.4$ ...
bash-4.4$ cd ./htdocs
bash-4.4$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working tree clean
bash-4.4$ git remote -v
origin  GitHandle:/opt/git/www.project1.local.git (fetch)
origin  GitHandle:/opt/git/www.project1.local.git (push)
origin  GitHandle:/opt/git/www.project2.com.git (push)
bash-4.4$ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/develop
  remotes/origin/master
bash-4.4$

不知何故,除了 "correct" 项目之外,我还将 "incorrect" 项目 (www.project1.local) 设置为远程,但两者都配置为 origin .由于某种原因,"correct" 项目也没有相应的 fetch

如果我检查 ./.git/config,则源配置似乎正确。

[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
        ignorecase = true
[remote "origin"]
        url = GitHandle:/opt/git/www.project2.com.git
        fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
        remote = origin
        merge = refs/heads/master

然后我想我可以删除原点并用正确的原点重新添加它。该命令似乎是成功的。它从 ./.git/config 中删除了条目并删除了 "correct" 遥控器。但是"incorrect"那个还在附近。

bash-4.4$ git remote rm origin
bash-4.4$ git remote -v
origin  GitHandle:/opt/git/www.project1.local.git (fetch)
origin  GitHandle:/opt/git/www.project1.local.git (push)
bash-4.4$

如果我检查 ./.git/config,根本没有 origin 的踪迹。

bash-4.4$ nano ./.git/config
[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
        ignorecase = true
[branch "master"]

我决定再次尝试删除 origin,看看它是否再次成功。这一次,它出错了。

bash-4.4$ git remote -v
origin  GitHandle:/opt/git/www.project1.local.git (fetch)
origin  GitHandle:/opt/git/www.project1.local.git (push)
bash-4.4$ git remote rm origin
error: Could not remove config section 'remote.origin'
bash-4.4$

如果我然后尝试添加 "correct" 原点,它仍然保留 "incorrect" 原点并且只为 "correct" 遥控器添加一个 push

bash-4.4$ git remote set-url origin GitHandle:/opt/git/www.project2.com.git
bash-4.4$ git remote -v
origin  GitHandle:/opt/git/www.project1.local.git (fetch)
origin  GitHandle:/opt/git/www.project1.local.git (push)
origin  GitHandle:/opt/git/www.project2.com.git (push)
bash-4.4$

如果我检查我的 ./.git/config 文件,它显示原点设置正确:

bash-4.4$ nano ./.git/config
[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
        ignorecase = true
[branch "master"]
[remote "origin"]
        url = GitHandle:/opt/git/www.project2.com.git

我很难弄清楚接下来要做什么来解决这个问题。恐怕有人会将他们的更改推送到错误的项目(希望没有人 "forces" 它)。任何人都可以建议一些我可以探索的途径来尝试解决这个问题。有什么想法可以让 "incorrect" 远程吗?

如果那里需要任何东西,我可以完全访问远程存储库。如果我应该提供任何可能有帮助的额外信息,请告诉我。

听起来您可能在全局 ~/.gitconfig 文件中配置了 remote。在那里看一看,如果找到就把它移除。