git - 从现有远程分支创建本地分支

tem*_*ser 9 git git-branch

我想从现有的远程分支创建一个分支(比如说remote-A),然后将更改提交到repo.

我使用以下命令从现有的远程A创建本地分支

$git checkout remote-A

git branch
master
* remote-A
Run Code Online (Sandbox Code Playgroud)

现在我使用以下命令从Remote A创建了local-B

git branch local-B
git checkout local-B
Run Code Online (Sandbox Code Playgroud)

如何确保我在local-B上的更改位于remote-A之上,以便当我将local-B推送到远程repo时,更改位于remote-A之上?

ali*_*oli 22

这应该有效:

git checkout --track origin/<REMOTE_BRANCH_NAE>

  • 如果您想为新分支指定特定名称:“git checkout -b master-copy --track origin/master”,请将“master-copy”替换为您想要的任何名称。 (7认同)
  • 或者 `git checkout -t origin/&lt;REMOTE_BRANCH_NAME&gt;` (4认同)

xpl*_*raj 18

老帖子,我还想加我做的.

1. git remote add <remote_name> <repo_url>
2. git fetch <remote_name>
3. git checkout -b <new_branch_name> <remote_name>/<remote_branch_name>
Run Code Online (Sandbox Code Playgroud)

这一系列命令会

  1. 创建一个新的遥控器,
  2. 把它带到你的本地,所以你的本地git知道它的分支和所有,
  3. 从远程分支创建一个新分支并结帐.

现在,如果要将此新本地分支发布到远程并设置上游URL

git push origin +<new_branch_name>

此外,如果只需要进行远程更改,则可以完成,而不是第3步,

git pull --rebase <remote_name> <remote_branch_name>
Run Code Online (Sandbox Code Playgroud)

然后git mergetool在发生任何冲突时选择 (需要单独配置),并按照git中的控制台指令操作.

  • `git checkout -b &lt;new_branch_name&gt; &lt;remote_name&gt;/&lt;remote_branch_name&gt;` 是我试图找到的命令。而已。我删除了原来的声明,因为它似乎令人困惑。 (4认同)
  • 您可以使用 `-t` 创建具有相同名称的本地分支,以节省一些输入 - `git checkout -t &lt;remote_server&gt;/&lt;remote_branch&gt;` (4认同)
  • 如果您不希望新分支跟踪远程分支,请在第 3 步中使用“--no-track”。 (2认同)

yks*_*ki9 16

首先我们需要使用获取远程分支

git fetch origin <remote-branch>
Run Code Online (Sandbox Code Playgroud)

然后只需创建一个新的本地分支来跟踪远程分支

git checkout -b <local-branch> origin/<remote-branch>
Run Code Online (Sandbox Code Playgroud)

替换origin为您的远程名称。


Vla*_*rov 11

你想在远程A的基础上创建分支,对它进行更改,然后将它们推到远程A上?

git checkout -b remote-A
git pull origin remote-A
git checkout -b remote-B
Run Code Online (Sandbox Code Playgroud)

在remote-B上进行更改

 git commit -a -m 'describe changes on remote-B branch'

 git checkout remote-A  
 git merge remote-B  
 git push origin remote-A
Run Code Online (Sandbox Code Playgroud)

  • 现在,`git checkout feature/A` 将建立一个新的分支来跟踪远程 `origin/feature/A`,除非 `feature/A` 已经存在。您还可以使用“git checkout -b feature/A --track origin/feature/A”明确执行此操作。 (9认同)

OM *_*iya 8

我想从具有不同名称的远程 git 分支创建一个新的本地跟踪分支。

所以我使用了这个命令:

git checkout -b <new_branch_name> --track <remote_name>/<remote_branch_name>

例子:

git checkout -b local-A --track origin/remote-A

我在对上述答案的多条评论中看到了它,但第一眼看到它就很好。

跟踪分支是与远程分支有直接关系的本地分支。如果您在跟踪分支上并键入 git pull,Git 会自动知道要从哪个服务器获取数据以及要合并到哪个分支。


Kip*_*ipr 8

git switch自2.23版本引入以来:

git switch -c <new-branch> <start-point>
Run Code Online (Sandbox Code Playgroud)

<start-point>例如,您的远程分支在哪里origin/main

如果您想简单地从远程分支创建本地分支,例如origin/remote-branch您可以简单地运行:

git switch remote-branch
Run Code Online (Sandbox Code Playgroud)

它将从远程分支创建一个新的本地分支。


par*_*ini 6

首先通过以下方式下载所有远程分支:

git fetch
Run Code Online (Sandbox Code Playgroud)

然后从中创建一个本地分支:

git checkout -b local_branch_name origin/remote_branch_name
Run Code Online (Sandbox Code Playgroud)