如何将 git origin 更改为特定分支?

How can I change git origin to a specific branch?

我已经在 GitHub (3.x) 克隆了一个特定的分支,但是原点被自动设置到另一个分支 (2.x)。

我只想在 3.x 分支上工作(绝不是 2.x 分支)。我宁愿使用 git pull origin 而不是 git pull origin/3.x。

更改默认拉取位置的最佳方法是什么?

据我了解,您正在尝试更改 origin/branch url 但没必要。只需针对您的问题检查两种不同的方法。

$ git clone https://github.com/somegreatpath/somegreatproject.git
$ cd somegreatproject

检查您此时使用的分支:

$ git branch    
* 2.x

查看你想要的分支

$ git checkout -b 3.x origin/3.x
 Branch 3.x set up to track remote branch 3.x from origin.
 Switched to a new branch '3.x'

确认您现在正在使用所需的分支:

$ git branch    
* 3.x
  2.x

如果以后想再更新代码,运行 git pull:

$ git pull
Already up-to-date.

您还可以更改 origin。首先,检查当前遥控器 url:

$ git remote -v
* origin  git@github.com:USERNAME/REPOSITORY.git (fetch)
* origin  git@github.com:USERNAME/REPOSITORY.git (push)

设置新的url

$ git remote set-url origin https://github.com/USERNAME/REPOSITORY.git

验证遥控器 URL 是否已更改。

$ git remote -v    
* origin https://github.com/USERNAME/REPOSITORYUSERNAME/REPOSITORY.git (fetch)
* origin https://github.com/USERNAME/REPOSITORYUSERNAME/REPOSITORY.git (push)

希望,这是帮助!

在这种情况下,"git pull origin" 无法拉取 3.x 分支,因为它不是远程仓库的默认分支。

经过一些实验,最好的解决方案竟然是这个(从父目录发出):

git clone -b 3.x --single-branch  git@github.com:user/reponame.git your_subdirectory

这可以防止其他分支被克隆,并设置 "git pull" 自己,自动从远程 3.x 分支中提取。

它还消除了 "git pull origin" 或 "git diff origin" 的潜在错误(这将引用远程的默认 2.x 分支)。除非您引用已克隆的特定分支,否则这些命令不起作用。