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

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

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

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

在这种情况下,你可能想要 创建本地test正在跟踪远程test分支 :

$ git branch test origin/test

先前版本的git,你需要一个明确的--track选项,但当您正在从一个远程分支进行分支分割时,这是默认值。

创建本地分支切换到它,使用:

$ git checkout -b test origin/test

主题说明:与现代基特()1.6.6),您可以使用

git checkout test

(请注意“测试”不是“原产/测试”)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-为您创建本地的“测试”分支, 上游是远程跟踪分支“ 源/ 测试 ” 。


缩略* (no branch)git branch输出是指您在未命名的分支上, 即所谓的“ 列列 HEAD ” 状态( HEAD 指点直接承诺, 而不是某些本地分支的象征性引用) 。 如果您在这个未命名的分支上做了一些承诺, 您总是可以在当前承诺中创建本地分支 :

git checkout -b test HEAD

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

@Dennis:git checkout <non-branch>,例如,git checkout origin/test产生独立的总部领导/未命名分支,而git checkout testgit checkout -b test origin/test地方分支的成果test(与远程跟踪处一起)origin/test计为上游上游- 贾库布·纳拉斯基14日8: 17

重点强调git checkout origin/test


这将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 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 仓库, 需要 :

git clone <either ssh url /http url>

上述命令检查了所有分支,但只检查了master将初始化分支。 如果您想要检查其它分支, 请做 :

git checkout -t origin/future_branch (for example)

此命令检查远程分支, 您的本地分支名称将与远程分支相同 。

如果您想要在检查退出时覆盖您的本地分支名称 :

git checkout -t -b enhancement origin/future_branch

现在您的本地分支名称是enhancement,但您的远程分支名称是future_branch.


如果该分支所在的事物上不是其他的,origin我喜欢做以下工作:

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

这将检出next分支上upstream远程连接到一个本地分支,该分支被调用second/next。这意味着,如果您已经拥有下一个命名为本地分支的分支,则不会发生冲突。

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

git branch -r表示对象名称无效, 因为该分支名称不在 Git 的本地分支列表中。 更新您的本地分支列表来源 :

git remote update

然后再试着检查一下你的远程分支

这对我管用

我相信git fetch拉拉进全部( 全部)远端树枝,这不是最初的海报所要的。


我尝试了上面的解决方案,但行不通。试试这个,它奏效了:

git fetch origin 'remote_branch':'local_branch_name'

这将获取远程分支, 并创建一个新本地分支( 如果尚未存在) 名称local_branch_name并追踪其中的遥控者。


你可以试试

git fetch remote
git checkout --track -b local_branch_name origin/branch_name

git fetch
git checkout -b local_branch_name origin/branch_name

git fetch && git checkout your-branch-name


请遵循命令创建空文件夹。 请输入并使用此命令 :

saifurs-Mini:YO-iOS saifurrahman$ git clone your_project_url
Cloning into 'iPhoneV1'...
remote: Counting objects: 34230, done.
remote: Compressing objects: 100% (24028/24028), done.
remote: Total 34230 (delta 22212), reused 15340 (delta 9324)
Receiving objects: 100% (34230/34230), 202.53 MiB | 294.00 KiB/s, done.
Resolving deltas: 100% (22212/22212), done.
Checking connectivity... done.
saifurs-Mini:YO-iOS saifurrahman$ cd iPhoneV1/
saifurs-Mini:iPhoneV1 saifurrahman$ git checkout 1_4_0_content_discovery
Branch 1_4_0_content_discovery set up to track remote branch 1_4_0_content_discovery from origin.
Switched to a new branch '1_4_0_content_discovery'

使用 :

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

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


命令

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

两者将创造latest fixes_for_dev调自development


首先,你需要做的是:

git fetch如果你不知道 分支名称

git fetch origin branch_name

第二,您可通过下列方式检查远程分支进入本地 :

git checkout -b branch_name origin/branch_name

-b将从您选中的远程分支中以指定的名称创建新分支 。


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

git 检查退出测试, 无效

Does nothing不等于doesn't work,所以我猜想当您在终端键入“ Gitt 检出测试” 并按键输入密钥时,没有出现消息,也没有出错。对不对?

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

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

何时git checkout xxx被弃绝,

  1. 吉特看着xxx一开始是树枝名称, 但没有任何树枝名称测试 。
  2. 然后基特觉得xxx这是一条道路,幸运的是,有一个名为“测试”的文件。git checkout xxx表示丢弃任何修改xxx文件。
  3. 如果没有名字的文件xxx或,然后 Git 将尝试创建xxx根据某些规则,其中一项规则是设立一个部门,名为:xxx如果remotes/origin/xxx存在。

您可以开始跟踪所有远程分支, 使用以下 Bash 脚本 :

#!/bin/bash
git fetch --all
for branch in `git branch -r --format="%(refname:short)" | sed 's/origin\///'`
  do git branch -f --track "$branch" "origin/$branch"
done

以下是单线版本:

git fetch --all; for branch in `git branch -r --format="%(refname:short)" | sed 's/origin\///'`; do git branch --track "$branch" "origin/$branch" ; done ;

你基本上看到了树枝,但你还没有本地的拷贝!

你需要,你需要fetch分支...

您可以简单地获取并退出分支, 使用下面的一条线命令来做到这一点 :

git fetch && git checkout test

我还创建了下面的图像 让你分享差异,看看如何fetch以及它是如何与pull:

git fetch


我使用以下命令:

git checkout --track origin/other_remote_branch

缩略git remote show <origin name>命令将列出所有分支(包括未跟踪的分支)。然后您可以找到要获取的远程分支名称。

示例:

git remote show origin

使用这些步骤获取远程分支 :

git fetch <origin name> <remote branch name>:<local branch name>
git checkout <local branch name > (local branch name should the name that you given fetching)

示例:

git fetch origin test:test
git checkout test

获得新创建的分支

git fetch

要切换到另一个分支

git checkout BranchName

从远程获取并检查分支。

git fetch <remote_name> && git checkout <branch_name> 

例如:

git 获取来源 git 检出功能/ XYZ-1234- Add- 警告


这些答案对我毫无用处。

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

简单运行git checkout使用远程分支的名称。 Git 会自动自动创建本地分支, 跟踪远程分支 :

git fetch
git checkout test

但是,如果在不止一个远程中发现分支名称, 则无法使用 Git , 因为 Git 不知道该使用哪个 。 在这种情况下, 您也可以使用 :

git checkout --track origin/test

git checkout -b test origin/test

2.19基特学会了checkout.defaultRemote配置, 它指定了在解决此模糊性时默认的远程 。


我被困在一个状况中看到error: pathspec 'desired-branch' did not match any file(s) known to git.以上所有建议。我正在讨论Git 1.8.3.1版本。

所以这个为我工作:

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

背后的解释是,我注意到 当我拿起遥控树枝时,时前:

git fetch origin desired-branch

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

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

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

Enter image description here

出于某种原因,我想知道尖锐符号(###)是否与它有关,然后我试图用单引号绕绕分支名称,例如'#9773'而不是仅仅#9773幸运的是,它的工作很好。

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

使用使用fetch以拉动全部远程

   git fetch --all

要列出远程分支 :

   git branch -r

列出您所有的分支

   git branch -l
   >>outpots like-
     * develop
       test
       master

要取出/更改分支

   git checkout master

对我们来说,似乎remote.origin.fetch配置存在一个问题。 因此, 我们无法看到比master, 如此git fetch [--all]没有帮助,也没有帮助。git checkout mybranchgit checkout -b mybranch --track origin/mybranch确实工作过,虽然肯定在遥远的地方。

仅允许上一个配置master要获取的 :

$ 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 checkout本地边远分支。

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


要获得所有边远的分支, 请使用这个 :

git fetch --all

然后检查到分支:

git checkout test

有许多替代办法,例如:

  • 备选案文1:

    git fetch && git checkout test
    

    这是最简单的办法

  • 备选案文2:

    git fetch
    git checkout test
    

    是一样的,但分两步走


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

git 分支-all

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

git 分支分支

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

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

enter image description here


运行这两个命令,你应该可以去。

git checkout <branch-name>
git pull <remote> <branch-name>

我用了那个:

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

您可以添加一个新的分支test在本地和随后使用上:

git branch --set-upstream-to=origin/test test

我总是这样:

git fetch origin && git checkout --track origin/branch_name


git fetch --all

将所有远程分支都带回您的本地

git checkout test

将您切换到测试分支


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

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

它在抛出错误:

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

我必须这样做:

git checkout -b branch-name commit-sha

TL; DR TR; TL; TDR

使用git switch而不是git checkout。更多详情见此页面上的.

我认为答案是过时的。checkoutswitchrestore现在。

以下是我的总结:

如果您想要为远程分支更新一些内容, 您应该创建一个本地分支以“ 跟踪” 远程分支 。 您可以在本地更新任何您想要更新的内容, 并最终推到远程 。 如果您在克隆您的仓库后直接检查到远程分支, 您可能会看到“ 忽略的 HEAD” 状态, 以及 Git 的下列消息 :

Note: switching to 'origin/asd'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c <new-branch-name>

Or undo this operation with:

  git switch -

Turn off this advice by setting config variable advice.detachedHead to false

HEAD is now at d3e1083 Update a

那么,我们如何建立本地分支来追踪远程分支呢?

要创建本地分支以跟踪远程分支, 您可以使用git checkout <remote branch name>git switch <remote branch name>。如果您有一个文件或文件夹的名称与您的远程分支名称相同,git checkout将输出一些错误消息, 但是git switch可以正常工作! 正常工作! 正常工作!

示例:

  1. 查看所有分支, 我们想要创建一个本地分支, 跟踪远程分支remotes/origin/asd,我们也有文件名asd:

    $ git branch -a
    * master
      remotes/origin/HEAD -> origin/master
      remotes/origin/asd
      remotes/origin/ereres
      remotes/origin/master
      remotes/origin/zxc
    $ ls
    a  asd
    
  2. 文件名与远程分支相同, 如果我们使用 Git , Git 应该输出一些错误信息git checkout创建本地分支以跟踪远程分支

    $ git checkout asd
    fatal: 'asd' could be both a local file and a tracking branch.
    Please use -- (and optionally --no-guess) to disambiguate
    
  3. 如果我们用它,它就会有效git switch!

    $ git switch ereres
    Branch 'ereres' set up to track remote branch 'ereres' from 'origin'.
    Switched to a new branch 'ereres'
    
    $ git branch -vv
    * ereres 3895036 [origin/ereres] Update a
      master f9e24a9 [origin/master] Merge branch 'master' of
    

在我看来,没有人建议 最简单的方法(也许我太笨了 觉得这太蠢了)"一种方式"但无论如何,试试这个:

git pull origin remoteBranchName
git switch remoteBranchName

这对我也有效(在我最后一次拉拉请求后,在遥控器上创建了一个分支)。


我不确定,我日复一日地做这个,下面的命令就像宝石一样

dev ,dev ,dev ,dev ,dev ,dev是您想要检查的分支 。

git fetch && git checkout dev

在您的情况中,您可以使用此命令 :

git checkout -b test origin/test


工作命令

  1. git fetch origin 'remote_branch':'local_branch_name'

  2. git switch 'local_branch_name'

  3. git pull origin 'remote_branch':'local_branch_name'

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

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

第三是将最近的远距离变化推到当地分部。