git 如何更改存储库链接到的分支

ao218c7q  于 2023-01-24  发布在  Git
关注(0)|答案(2)|浏览(127)

我在MAIN/repo.git有一个repo,我把它分支到FORK/repo.git,我把这两个repo克隆到我的计算机上用于不同的目的。
在使用Github for Windows时,一个bug似乎将FORK/repo.git切换到了MAIN/repo.git,因为当我执行git remote show origin时,Fetch URL和Push URL被设置为主存储库。我如何将其切换回来,使本地机器上的相应文件夹指向FORK/repo.git,而不是MAIN/repo.git

mwg9r5ms

mwg9r5ms1#

最简单的方法是在本地克隆FORK中使用命令行git remote

git remote rm origin
git remote add origin https://github.com/user/FORK.git

或者,在一个命令中,如GitHub article所示:

git remote set-url origin https://github.com/user/FORK.git

更好的做法是:

  • 保持远程引用原始存储库
  • 在新的分支中工作(上游分支会跟踪你的分支)

因此:

git remote rename origin upstream
git branch -avv # existing branches like master are linked to upstream/xxx

git remote add origin https://github.com/user/FORK.git
git checkout -b newFeatureBranch

每当你需要根据原始repo的最新发展更新你的fork时:

git checkout master
git pull # it pulls from upstream!
git checkout newFeatureBranch
git rebase master # safe if you are alone working on that branch
git push --force # ditto. It pushes to origin, which is your fork.
ncgqoxb0

ncgqoxb02#

如果您不介意使用GitHub CLI,有一个更简单的解决方案:https://cli.github.com/
其命令名为repo forkhttps://cli.github.com/manual/gh_repo_fork
它将允许您派生一个您克隆的不属于您的存储库,并将origin远程切换到您的派生,只需运行gh repo fork并在它询问您是否要更新origin时选择“Yes”。
如果需要的话,将有一个新的远程变量upstream,它指向fork之前的原始仓库。

相关问题