前言
今天偶然发现,有个git项目的代码,始终都推送不了,很是蹊跷。在网上查了一些案例,发现其push和fetch的远端地址居然不一样,有点儿意思,故而在此记录一下。
分析
在 Git 中,每个远程仓库都有一个 fetch URL 和一个 push URL。fetch URL 用于从远程仓库拉取代码,push URL 用于向远程仓库推送代码。如果你在使用 git remote -v 命令时发现 fetch URL 和 push URL 不一致,可能是因为你的仓库配置了不同的 URL 用于拉取和推送代码。
如果你想要更改远程仓库的 fetch URL 或 push URL,可以使用以下命令:
git remote set-url --[push|fetch] <remote_name> <new_url>
在这个命令中,<remote_name> 是要更改 URL 的远程仓库的名称,<new_url> 是要设置的新 URL。--[push|fetch] 参数用于指定你要更改的是 fetch URL 还是 push URL。
例如,如果你想要更改名为 origin 的远程仓库的 push URL,可以使用以下命令:
git remote set-url --push origin <new_push_url>
这个命令会将名为 origin 的远程仓库的 push URL 更改为 <new_push_url>。如果你想要更改 fetch URL,只需要将 --push 参数改为 --fetch 即可。
如果你想要查看远程仓库的当前 URL,可以使用 git remote get-url 命令。例如,如果你想要查看名为 origin 的远程仓库的 fetch URL,可以使用以下命令:
git remote get-url --fetch origin
小妙招
如果你下载了sourceTree,在右侧的设置里,可以编辑当前git项目的配置文件,直接修改push和fetch远程地址。