有人推了一个分行testgit push origin test共享仓库的共享仓库。git branch -r如何查看遥控器test我试过了

  • git checkout test,它没有做任何事情
  • git checkout origin/test给给* (no branch)

当前回答

接受接受的答复不为你工作?

虽然第一个和选定的答案是技术上的正确中,您可能尚未从远程仓库中检索到所有对象和参考文献。如果是这种情况,您将会收到以下错误:

$ git checkout -b remote_branch origin/remote_branch

致命: git 检出: 更新路径与切换分支不兼容 。
您是否打算检查“ 来源/ remote_ branch ” 无法以承诺方式解决的“ 来源/ 远程- branch ” ?

解决方案

如果您收到此消息, 您必须首先完成git fetch origin何 地origin是运行前的远程仓库的名称git checkout remote_branch。以下是答复的完整例子:

$ git fetch origin
remote: Counting objects: 140, done.
remote: Compressing objects: 100% (30/30), done.
remote: Total 69 (delta 36), reused 66 (delta 33)
Unpacking objects: 100% (69/69), done.
From https://github.com/githubuser/repo-name
   e6ef1e0..5029161  develop    -> origin/develop
 * [new branch]      demo       -> origin/demo
   d80f8d7..359eab0  master     -> origin/master

$ git checkout demo
Branch demo set up to track remote branch demo from origin.
Switched to a new branch 'demo'

如你所见 跑着跑着git fetch origin检索到我们尚未安装的远程分支, 以跟踪本地机器 。 从那里, 因为我们现在有一个 ref 到远程分支, 我们就可以运行git checkout remote_branch我们会从远程追踪中受益

其他回答

使用 :

git checkout -b <BRANCH-NAME> <REMOTE-NAME>/<BRANCH-NAME>

其它答案在我的良性案例中不适用于现代 Git 。 如果远程分支是新的, 您可能需要先拉一下, 但我还没有检查过这个案例 。

这将DWIM DEWIM DEWIM DEWIM DEWIM DEWIM DEWIM DEWIM DEWIM DEWIM DIWIM DEWIM DIWIM DIWWM DI DIWIM DI DIWIM DI DIWIM DI DIWM DIWIM DI DIWM DI DI DIWIM DI DI DIWM远程未命名来源( 用于远程未命名来源) 。文档文件文件):

$ git checkout -t remote_name/remote_branch

要添加一个新的远程, 您需要首先做以下操作 :

$ git remote add remote_name location_of_remote
$ git fetch remote_name

第一个告诉Git 遥控器存在, 第二个得到承诺。

git 检出 -b "Branch_name" [B 意指创建本地分支]

git 分支-all

git 检出 -b “您的分支名称”

git 分支分支

git 拖拉源 "您的分支名称"

从母版分支向 dev 分支成功退出

enter image description here

出于某种原因,我不能做:

git checkout -b branch-name origin/branch-name

它在抛出错误:

致命 : “ 来源/ 分支名称” 不是一个承诺, 无法从中创建分支“ 分支名称 ” 。

我必须这样做:

git checkout -b branch-name commit-sha

答案已经分割, 取决于是否配置了一个远程仓库或多个。 原因是对于单个远程案例, 某些命令可以简化, 因为模糊性较小 。

Git 2. 23 更新:旧版本见结尾部分。

一个远程

在这两种情况下,先从远程仓库获取,以确保您下载了所有最新修改。

$ git fetch

这将为您获取所有远程分支。 您可以看到可用以检查的分支 :

$ git branch -v -a

...
remotes/origin/test

开始于树枝的树枝remotes/*可被视为只读取远程分支的复制件 。 要在分支上工作, 您需要从分支中创建本地分支 。 这是与 Git 命令一起完成的 。switch(自 Git 2.23 以来, 通过给它提供远程分支的名称( 减去远程名称) :

$ git switch test

在此情况下, Git 是在猜测 (可以使用--no-guess),您正试图用相同的名字检查和跟踪远程分支。

带多个远程

如果存在多个远程存储库,则需要明确指定远程存储库的名称。

与之前一样, 从获取最新的远程更改开始 :

$ git fetch origin

这将为您获取所有远程分支。 您可以看到可用以检查的分支 :

$ git branch -v -a

手边有远程树枝 现在需要查看您感兴趣的树枝-c创建一个新的本地分支 :

$ git switch -c test origin/test

欲了解更多关于使用的信息git switch:

$ man git-switch

我还为您创建了下面的图像, 以便分享差异, 看看如何获取工作, 以及拉动有什么不同:

enter image description here

在Git 2. 23之前

git switch在此之前,在Git 2.23中加上git checkout用于交换分支。

仅使用一个远程仓库退出 :

git checkout test

如果有多个已配置的远程仓库, 它会变长一点

git checkout -b test <name of remote>/test