我的git存储库混合了本地和远程起源



假设我在/home/home/myact/whting中有本地的非bare git repo。

不知何故,我处于/home/myacct/hatever/.git/config认为:

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
[remote "origin"]
    fetch = +refs/*:refs/*
    mirror = true
    url = /home/myacct/whatever

我所有的分支都说他们正在跟踪分支到远程来源,而我真正想要的只是一个简单的本地存储库,带有本地分支。

是否有一种简单的方法来解决此问题?

我想我可以猜测这是怎么发生的。我使用git克隆备份了我的存储库,我可能已经从克隆版本中恢复了一个混乱的本地存储库。这可能导致了这种情况。我刚刚遇到了这个问题。

您的配置具有内部冲突:

core.bare = false

但是:

remote.origin.mirror = true
remote.origin.fetch = +refs/*:refs/*

由于您希望它是非验证的,因此请单独使用core.bare设置,但完全删除remote.origin.mirror设置并修复remote.origin.fetch设置:

git config --unset remote.origin.mirror
git config remote.origin.fetch '+refs/heads/*:refs/remotes/origin/*'

这是您将使用普通的,非验证存储库进行的设置;此时,您可以运行git fetch origin来创建所有普通的远程跟踪分支。如果您的本地分支是远程分支的副本,则它们无害,但您可以以通常的方式删除它们。如果您还有其他要丢弃的参考文献,则可以用git update-ref -d删除这些引用,但这有点棘手,而且可能无需担心。

最新更新