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

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


当前回答

i 被困在一个看到错误的情况中: 路径谱“ 想要的分支” 与上述所有建议已知的 Git 匹配的文件不匹配 。 i' 正在 Git 1. 8. 3. 3.1 版本上 。

因此,这对我有效:

git fetch origin desired-branch
git checkout -b desired-branch FETCH_HEAD

背后的解释是,我已经注意到, 当拿起远程分支时, 它被拿到fick_head:

git fetch origin desired-branch

From github.com:MYTEAM/my-repo
    * branch            desired-branch -> FETCH_HEAD

其他回答

其他男人和女孩提供解决方案, 但也许我可以告诉你原因。

git 检查退出测试, 无效

没有什么不相等是行不通的, 所以我猜当你在终端键入“ gitt check out test” 并按下输入密钥时, 没有消息出现, 没有错误发生 。 对吧 ?

如果答案是"是" 我可以告诉你原因

原因是在工作树上有一个名为“测试”的文件(或文件夹)。

当Git退房 xxx解释,

git looks on xx 最初是一个分支名称, 但是没有哪个分支名称的测试。 然后 git 认为 xx 是一个路径, 幸运的是( 或者不幸地), 有一个名为测试的文件。 git 检查 xxx 意味着放弃第xx 文件中的任何修改 。 如果没有名为 xx 的文件, 那么git 将尝试根据某些规则创建 xx 。 其中一条规则是创建一个名为 xx 的分支, 如果有远程/ 原始/ xxx 存在 , 则创建一个名为 xx 的分支 。

我总是做:

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

i 使用了这一个:

git clean -fxd                         # removes untracked (new added plus ignored files)

git fetch
git checkout {branchname}

git reset --hard origin/{branchname}   # removes staged and working directory changes

工作命令

git 获取源“ remote_ branch ” : “ 本地_ branch_ name” git开关 “ 本地_ branch_ name” git pull 源“ remote_ branch ” : “ 本地_ branch_ name ”

第一个是从远程分支获取分支和创建本地分支。

第二个是转换到当地分行。

第三是将最近的远程更改拖到本地分支。