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

git 检出测试, 它不会给 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 --all
git checkout -b <ur_new_local_branch_name> origin/<Remote_Branch_Name>

等于

 git fetch --all

时和时

 git checkout -b fixes_for_dev origin/development

两者将创建开发中的最新修正_for_ dev

如果远程分支名称以特殊字符开头, 您需要在校验退出命令中使用单引号, 否则git 将不知道您在谈论哪个分支 。

例如,我试图查看一个叫9773的远程分支, 但命令没有正常工作, 如下图所示:

因为某种原因, 我想知道尖锐的符号( ) 是否与它有关, 然后我试图用单引号, 比如“ 9773 ” 而不是仅仅9773, 环绕分支名称, 幸运的是,

git checkout -b '#9773' origin/'#9773'

i 使用以下命令:

git checkout --track origin/other_remote_branch

这些答案对我毫无用处。

git checkout -b feature/branch remotes/origin/feature/branch

侧注: 使用现代 git ( & gt; = 1.6. 6) 您可以使用

git checkout test

(注意测试不是“原产/试验”) 执行神奇的dwim-mery 和为您创建本地分支“测试”, 而上游则是远程跟踪分支“原产/试验”。


在 Git 分支输出中的 * (没有分支) 表示您在未命名的分支上, 即所谓的“ 挂勾头 ” 状态( 直接承诺的头点, 而不是某些本地分支的象征性引用) 。 如果您在这个未命名的分支上做了一些承诺, 您总是可以在当前承诺中创建本地分支 :

git checkout -b test HEAD

评论中建议的一种更现代的方法:

@dennis: git check out&lt;non-branch&gt; 例如, git check out/ test 结果在独立头部/ 未命名分支中, 而 git check out test 或 git check out - b 测试源/ test 结果在本地分支测试中( 有远程跟踪分支来源/ 测试为上游) - Jakub narbski jan 9'14 at 8: 17

以 git 检出来源/ 测试为重点