git 在同一台服务器上移动远程存储库后推送失败

git push fails after moving remote repository on same server

我在同一台服务器上有一个 git 工作仓库和一个裸仓库,如下所示:

/
+---dev
|    +---work
|    |    |   
|    |    +---.git
|    |    +---src
|    |    +---...
|    |
|    +---bare-repo.git
|
+---other

从工作回购推拉到裸回购工作正常。然后我需要像这样重新组织目录:

/
+---dev
|    +---work
|    |    |   
|    |    +---.git
|    |    +---src
|    |    +---...
|
+---git
|    +---bare-repo.git
|
+---other

/dev/work 期间,我将遥控器 URL 更改为:

git remote set-url origin /git/bare-repo.git

这个命令成功了,但是当我尝试 push 我得到:

fatal: '../bare-repo.git' does not appear to be a git repository
fatal: Could not read from remote repository.

有意思。而 git remote -v 显示

origin  /git/bare-repo.git (fetch)
origin  /git/bare-repo.git (push)

git 配置文件包含:

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
[branch "master"]
    remote = ../bare-repo.git
    merge = refs/heads/master
[remote "origin"]
    url = /git/bare.repo.git
    fetch = +refs/heads/*:refs/remotes/origin/*

因此,set-url 并未更改分支主管的 remote。应该是?我觉得不是。所以我发现更改远程 'origin' 的 URL 的命令不是最好的。我想我可以编辑配置文件并手动更正路径,但正确的步骤是什么?

我不知道是怎么发生的:

[branch "master"]
    remote = ../bare-repo.git
    merge = refs/heads/master

但是中间那一行应该读作:

    remote = origin

有了这个修复,其他一切都应该正常工作。