假设我在/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
删除这些引用,但这有点棘手,而且可能无需担心。