有人将称为 Git 推力源测试的分支推向共享仓库 。 我可以看到有 git 分支 -r 的分支 。 我如何查看远程测试分支 ? 我试过 :

git 检出测试, 它不会给 git 检出源/ 测试提供任何结果 * (无分支)


当前回答

对我们来说, 远程的. 起源. fetch 配置有问题。 因此, 我们看不到任何其他的远程分支, 以至于我们看不到主人, 所以git getting[-- all] 毫无帮助。 无论是 Git 检查我的分机还是 git check out - b mybranch -- track- track 起源/ Mybranch 都没有工作, 尽管它确实在遥远的地方。

上一个配置只允许获取主机 :

$ git config --list | grep fetch
remote.origin.fetch=+refs/heads/master:refs/remotes/origin/master

使用 * 来修正它,并从源头获取新信息 :

$ git config remote.origin.fetch '+refs/heads/*:refs/remotes/origin/*'

$ git fetch
...
 * [new branch] ...
...

现在我们可以去本地的远程分支检查了

我完全不知道这个配置 怎么会出现在我们本地的仓库里

其他回答

获得新创建的分支

git fetch

切换到另一个分支

git checkout BranchName

被接受的答案不为你工作?

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

$ git checkout -b remote_branch origin/remote_branch

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

解决方案

如果您收到此信件, 您必须先从 Git 获取源代码中获取消息, 在运行 git 检查远程_ 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 抓取来源时, 检索到我们尚未设置的远程分支 来追踪本地机器 。 从那里, 既然我们现在有一个 ref 到远程分支, 我们可以简单地运行 git 检查远程支架, 我们会从远程跟踪中受益 。

简单的 Git 检查退出时使用远程分支的名称。 git 会自动创建本地分支, 跟踪远程分支 :

git fetch
git checkout test

但是,如果在不止一个远程中发现该分支名称, 这不会起到Git不知道该使用什么的作用。 在这种情况下, 您也可以使用 :

git checkout --track origin/test

git checkout -b test origin/test

在 2.19 中, git 学会了检出。 默认远程配置, 指定了在解决这种模糊性时的远程默认值 。

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

git 2.23 更新:旧版本见结尾部分。

一个远程

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

$ git fetch

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

$ git branch -v -a

...
remotes/origin/test

以远程/ * 开始的分支可被视为只读取远程分支的副本。 要在分支上工作, 您需要从它创建本地分支 。 这是用 git 命令开关( 自 git 2. 23) 完成的, 并给其以远程分支的名称( 减去远程名称 ) :

$ git switch test

在此情况下, git 猜测( 可以用 -- -- no- guesss 禁用) 您试图用相同的名称检查和跟踪远程分支 。

具有多个遥控器

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

以获取最新的远程更改开始 :

$ git fetch origin

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

$ git branch -v -a

与手头的远程分支一起, 您现在需要检查您感兴趣的 - c 分支, 创建一个新的本地分支 :

$ git switch -c test origin/test

有关使用 git 开关的更多信息 :

$ man git-switch

我还创建了下面的图像, 供您分享差异, 查看如何获取作品, 以及拉动如何不同 :

Git 2. 23 前

git 开关在 git 2. 23 中添加, 之前用于切换分支 。

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

git checkout test

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

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

如果分支位于来源远程以外的某物上,我愿意做以下工作:

$ git fetch
$ git checkout -b second/next upstream/next

此选项将检查上游边远处的下一个分支, 到一个名为第二个/ 下一个的本地分支。 这意味着如果您已经拥有下一个命名为本地分支的分支, 就不会发生冲突 。

$ git branch -a
* second/next
  remotes/origin/next
  remotes/upstream/next