有人将称为 Git 推力源测试的分支推向共享仓库 。 我可以看到有 git 分支 -r 的分支 。 我如何查看远程测试分支 ? 我试过 :
git 检出测试, 它不会给 git 检出源/ 测试提供任何结果 * (无分支)
有人将称为 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 branch test origin/test
在早期版本的 git 中, 您需要一个明确的 -- track 选项, 但是当您正在将远程分支分割出来时, 这是默认的 。
创建本地分支并切换到它,使用:
$ git checkout -b test origin/test
侧注: 使用现代 git ( & gt; = 1.6. 6) 您可以使用
git checkout test
(注意测试不是“原产/试验”) 执行神奇的dwim-mery 和为您创建本地分支“测试”, 而上游则是远程跟踪分支“原产/试验”。
在 Git 分支输出中的 * (没有分支) 表示您在未命名的分支上, 即所谓的“ 挂勾头 ” 状态( 直接承诺的头点, 而不是某些本地分支的象征性引用) 。 如果您在这个未命名的分支上做了一些承诺, 您总是可以在当前承诺中创建本地分支 :
git checkout -b test HEAD
评论中建议的一种更现代的方法:
@dennis: git check out<non-branch> 例如, git check out/ test 结果在独立头部/ 未命名分支中, 而 git check out test 或 git check out - b 测试源/ test 结果在本地分支测试中( 有远程跟踪分支来源/ 测试为上游) - Jakub narbski jan 9'14 at 8: 17
以 git 检出来源/ 测试为重点
这将为未命名的远程来源( 文档) 提供宽度 :
$ git checkout -t remote_name/remote_branch
添加新的远程,您需要首先做以下操作:
$ git remote add remote_name location_of_remote
$ git fetch remote_name
第一次告诉遥控器的存在, 第二次得到承诺。
被接受的答案不为你工作?
第一个和选定答案在技术上是正确的,但您可能尚未从远程仓库中检索到所有对象和参考文献。 如果是这样,您将会收到以下错误:
$ 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 clone <either ssh url /http url>
以上命令检查所有分支,但只有主分支会被初始化。如果您想要检查其它分支,请做 :
git checkout -t origin/future_branch (for example)
此命令检查远程分支, 您的本地分支名称将与远程分支相同 。
如果您想要在退出时覆盖您的本地分支名称 :
git checkout -t -b enhancement origin/future_branch
您的本地分支名称是增强, 但您的远程分支名称是未来_ branch 。
如果分支位于来源远程以外的某物上,我愿意做以下工作:
$ git fetch
$ git checkout -b second/next upstream/next
此选项将检查上游边远处的下一个分支, 到一个名为第二个/ 下一个的本地分支。 这意味着如果您已经拥有下一个命名为本地分支的分支, 就不会发生冲突 。
$ git branch -a
* second/next
remotes/origin/next
remotes/upstream/next
git 分支 -r 表示对象名称无效, 因为该分支名称不在 Git 的本地分支列表中。 从源头更新您的本地分支列表 :
git remote update
然后尝试再检查一下你的远程分支。
这是为我工作。
我相信在所有偏远的树枝里都会拉拉, 这并不是最初的海报所希望的。
我尝试了上述解决方案,但行不通。试试这个,它奏效了:
git fetch origin 'remote_branch':'local_branch_name'
这将获取远程分支, 并创建一个新的本地分支( 如果尚未存在的话) , 名称为本地_ 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
请遵循命令创建空文件夹。 请输入并使用此命令 :
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
两者将创建开发中的最新修正_for_ dev
首先,你需要做:
如果您不知道分支名称, git 获取
git fetch origin branch_name
第二,您可通过下列方式检查远程分支进入本地 :
git checkout -b branch_name origin/branch_name
-b 将从选定的远程分支中以指定的名称创建新的分支。
其他男人和女孩提供解决方案, 但也许我可以告诉你原因。
git 检查退出测试, 无效
没有什么不相等是行不通的, 所以我猜当你在终端键入“ gitt check out test” 并按下输入密钥时, 没有消息出现, 没有错误发生 。 对吧 ?
如果答案是"是" 我可以告诉你原因
原因是在工作树上有一个名为“测试”的文件(或文件夹)。
当Git退房 xxx解释,
git looks on xx 最初是一个分支名称, 但是没有哪个分支名称的测试。 然后 git 认为 xx 是一个路径, 幸运的是( 或者不幸地), 有一个名为测试的文件。 git 检查 xxx 意味着放弃第xx 文件中的任何修改 。 如果没有名为 xx 的文件, 那么git 将尝试根据某些规则创建 xx 。 其中一条规则是创建一个名为 xx 的分支, 如果有远程/ 原始/ xxx 存在 , 则创建一个名为 xx 的分支 。
您可以开始跟踪所有远程分支, 使用以下制表单脚本 :
#!/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 ;
你基本上看到了分支, 但你还没有本地副本...
您需要获取分支...
您可以简单地获取并退出分支,然后使用下面的一条线命令来做到这一点:
git fetch && git checkout test
我还创建了下面的图像, 供您分享差异, 查看如何取取如何工作, 以及拉动如何不同 :
调
git 远程显示 & lt; 原始名称 & gt; 命令将列出所有分支( 包括未跟踪的分支) 。 然后您可以找到要获取的远程分支名称 。
例如:
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 <remote_name> && git checkout <branch_name>
例如:
git 获取来源 git 检出功能/xyz-1234 - 添加警报
简单的 Git 检查退出时使用远程分支的名称。 git 会自动创建本地分支, 跟踪远程分支 :
git fetch
git checkout test
但是,如果在不止一个远程中发现该分支名称, 这不会起到Git不知道该使用什么的作用。 在这种情况下, 您也可以使用 :
git checkout --track origin/test
或
git checkout -b test origin/test
在 2.19 中, 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 将不知道您在谈论哪个分支 。
例如,我试图查看一个叫9773的远程分支, 但命令没有正常工作, 如下图所示:
调
因为某种原因, 我想知道尖锐的符号( ) 是否与它有关, 然后我试图用单引号, 比如“ 9773 ” 而不是仅仅9773, 环绕分支名称, 幸运的是,
git checkout -b '#9773' origin/'#9773'
使用抓取来拉动全部远程
git fetch --all
列表远程分支 :
git branch -r
列表所有您的分支
git branch -l
>>outpots like-
* develop
test
master
要取出/更改分支
git checkout master
对我们来说, 远程的. 起源. 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 检出 -b “branch_name” [b 意指创建本地分支]
git 分支-all
git 检出 - b “ 您的分支名称 ”
git 分支分支
git 拖拉源 "你的分支名称"
从母版分支向 dev 分支成功退出
调
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 获取来源 #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出出
因为某种原因,我不能做:
git checkout -b branch-name origin/branch-name
它扔出错误:
致命 : “ 来源/ 分支名称” 不是一个承诺, 无法从中创建分支“ 分支名称 ” 。
我不得不这样做:
git checkout -b branch-name commit-sha
tl; dr , tl; dr
使用 git 开关而不是 git 检出。 更多详情请见此页面 。
我认为答案已经过时。 git 将一些退票功能分割为切换和现在恢复 。
以下是我的总结:
如果您想要为远程分支更新一些内容, 您应该创建一个本地分支以“ 跟踪” 远程分支。 您可以在本地更新任何您想要更新的内容, 并最终推到远程 。 如果您在克隆您的仓库后直接检查到远程分支, 您可能会看到“ 标记头” 状态, 并从 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 & lt; remote 分支名 & gt; 或 git 开关 < remote 分支名 & gt; 。 如果您有一个文件或文件夹与您的远程分支名有相同名称, git checkout 会输出一些错误消息, 但是 git 开关通常可以正常工作 。
例如:
查看所有分支, 我们想要创建一个本地分支, 以跟踪远程分支遥控器/ 原发/ ass 。 我们也有一个文件名称 : $ git 分支 - a * 主遥控器/ 原发/ 头发- & gt; 原发/ 主遥控器/原发/ 原发/ 远地/ 原发/ 原发/ 原发/ zxc $ 。 以文件名和文件名相同 。 如果我们使用 Git 检查命令创建本地分支以跟踪远程分支 $ git 检查结果, git 则应该输出一些错误信息 。
似乎没有人提出最简单的方法(也许我太笨了,
git pull origin remoteBranchName
git switch remoteBranchName
同一个案例(在我最后一次拉拉请求后,在遥控器上创建了一个分支)为我工作。
工作命令
git 获取源“ remote_ branch ” : “ 本地_ branch_ name” git开关 “ 本地_ branch_ name” git pull 源“ remote_ branch ” : “ 本地_ branch_ name ”
第一个是从远程分支获取分支和创建本地分支。
第二个是转换到当地分行。
第三是将最近的远程更改拖到本地分支。