git clone 不签出活动分支

2024-03-20

我有一个远程裸存储库,有两个分支“master”和“testing”,其中 HEAD 指“testing”。 克隆此存储库时,git 检查“master”,如果“master”和“testing”位于同一修订版上(即 HEAD == test == master)。 仅当“测试”是后面或前面的一个(或多个)提交时,git clone 才会检查本地端的“测试”分支。 我在 Mac OS X (10.6.8) 上使用 git 1.7.5 尝试过此操作。

附录: 我刚刚对非裸存储库进行了相同的尝试:

mkdir A
cd A
git init
touch a
git add a
git commit -m "init repo A with a"
git checkout -b testing

现在回到根目录:

cd ..
git clone A B
cd B
git branch -v -a
* master                 28f599b init A
  remotes/origin/HEAD    -> origin/master
  remotes/origin/master  28f599b init A
  remotes/origin/testing 28f599b init A

是‘师父’!回到仓库 A(我们仍处于分支“测试”中):

cd ../A
touch b
git add b
git commit -m "add b in branch testing"

现在“测试”是“大师”之前的一项提交。现在让我们再次克隆 A:

cd ..
git clone A C
cd C
git branch -a -v
* testing                23bca39 add b in branch testing
  remotes/origin/HEAD    -> origin/testing
  remotes/origin/master  28f599b init A
  remotes/origin/testing 23bca39 add b in branch testing

您可以通过返回 A、签出“master”并将其与“testing”合并来重新验证这种奇怪的行为(以便所有分支具有相同的头)。现在将 A 克隆到 D 中,并且 D 将在 master 上检查!


git clone复制所有分支及其历史记录,以及 SHA1 和not他们的头的裁判。 AFAIK refspecs 不会被传输,因为它们对 git 来说比克隆更新(显然),并且克隆协议不保留它们......这意味着它猜测(编辑:这已被邮件列表确认)。

head 的 ref 在克隆过程中通过匹配其 SHA1 来猜测。在你的情况下,SHA1 是不明确的,因为master and testing两者匹配,所以master按惯例选择。据我所知,这没有任何记录,但应该有。

要查看情况是否如此,请转到您的B示例存储库并运行git ls-remote。输出将为您提供 SHA1,而不是引用:

1c3eebcd1bd3659a40f02880918d5fbd5614b51a    HEAD
1c3eebcd1bd3659a40f02880918d5fbd5614b51a    refs/heads/master
1c3eebcd1bd3659a40f02880918d5fbd5614b51a    refs/heads/testing

作为解决方法,

git clone -b <branch_name>

将克隆并签出您所需的分支branch_name,例如master或test。

我认为此时您被迫遵守 HEAD 是 master 的约定,master 是签出的默认分支,如果您设置为开发人员克隆不同的 head,请使用 -b 开关。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

git clone 不签出活动分支 的相关文章

  • 为什么某些 Git 分支名称中包含斜杠?

    我正在阅读本教程https www atlassian com git tutorials syncing git fetch https www atlassian com git tutorials syncing git fetch
  • Git 提交从 Windows 上的守护程序返回错误 docker/error 响应

    我正在为我的 Laravel 应用程序 BE 运行 docker 我对 readmeme md 文件进行了简单的更新 并尝试将此文件提交并推送到 git 当我尝试提交时 这就是我得到的 gt git c user useConfigOnly
  • 列出其他人(即不是我)所做的提交?

    是否有一种标准方法可以列出 git 存储库中其他人 即不是我自己 所做的所有提交 I tried git log not author username 但看起来 not仅适用于修订版 的联机帮助页git log似乎没有提供反转谓词的方法
  • 子 git 存储库作为主存储库的子集

    我正在寻找一种方法来设置 git 存储库 其中包括来自较大存储库的文件子集 并从该主存储库继承历史记录 我的主要动机是能够通过 GitHub 共享代码子集 我目前通过单个 git 存储库管理我的研究相关 主要是 Matlab 代码 代码本身
  • 忽略提交之间 git-diff 的*所有*空白更改

    我正在检查代码库并修复空白奇怪之处并通常纠正缩进等事情 并且我想确保我没有无意中进行任何其他更改 所以我正在做git diff w显示所有已更改文件中的差异 同时忽略空白差异 问题是这实际上并没有忽略all空白差异 至少是什么I认为仅仅是空
  • 我可以将 Azure Dev Ops 构建定义同时用于发布管理管道和拉取请求,但后者不会触发管道吗

    简而言之 我们希望使用构建定义来生成用于发布管理的工件并检查拉取请求 但不允许后者触发新版本 我们在 Git Repo 上有 CI 构建定义 将工件输入到发布管理管道中 与许多团队一样 我们也设置了 Pull 请求来保护我们的 git ma
  • 从 git 签出后 nuget dll 丢失

    I have a C solution containing different projects On those projects I have some normal nuget packages like Newtonsoft Js
  • 如何为新的 eclipse (neon) java 项目初始化 git

    我安装了 eclipse Neon 的新副本 并在一个新的闪亮工作区中创建了一个新的 gradle java 项目 将 git 添加到聚会中的最佳实践是什么 我读到在项目目录中初始化 git 是真是个坏主意 https stackoverf
  • 合并git中2个不同分支中具有相同名称的2个文件

    我目前有一个名为test1在一个名为branch1创建自master另一个文件也命名为test1在一个名为branch2也创建自master 如果我合并 master 中的两个分支 这两个文件中编写的代码会发生什么 As 阿米尔回答了 ht
  • 克隆包含所有子模块的 git 存储库

    我有一个工作 git 存储库 其中包含几个子模块 通过克隆不同的存储库获得 现在 我想要复制整个存储库 包含所有子模块 通过使用推送或克隆到另一台机器上的裸 git 存储库 我很高兴失去子模块的历史记录 我只是对保留它们的内容感兴趣 这可能
  • 如何使用它们的更改来解决选择冲突?

    My git cherry pick FOO产生了冲突 我可以检查冲突的文件并删除之间的行 lt lt lt lt lt lt lt and 以及冲突标记本身 但我希望有一种更简单的方法 我觉得svn等同于选择theirs conflict
  • git push origin 分支名总是推送到 master

    我搜索了一下 但似乎找不到答案 在我可以访问的两个盒子上 当我执行 git push dry run origin mytestbranch 时 我得到以下结果 To email protected cdn cgi l email prot
  • Git:man 命令不起作用

    在 Git Bash 中 他们给了我一个error用于返回 man command man git bash man command not found 我的 Git 版本 git version git version 2 18 0 wi
  • 是否可以在一次 git 调用中取消设置多个 git 配置值,而不是逐一取消设置?

    我需要自动取消全局 git 配置文件中的许多别名 diff difftool merge mergetool 设置 现在我正在打电话git config global unset对于他们每个人来说 这有点慢 嗯 相对而言 大约需要 3 秒
  • 如何在 git diff 中按标点符号拆分单词?

    我对以下命令有一些运气 git diff color words lt gt space lt gt 但它似乎没有在第一个字符类中正确地否定方括号 我试过这个 git diff color words lt gt space lt gt 为
  • 判断 Git 提交是否是合并/恢复提交

    我正在编写一个脚本 需要检查特定提交是否是合并 恢复提交 我想知道是否有 git 技巧 到目前为止我想到的 我绝对不想依赖这里的提交消息 是检查HASH 2看看我是否没有收到错误 是否有更好的方法 判断某个东西是否是合并很容易 这是不止一位
  • Git:结帐而不运行结帐后挂钩

    我有一个我喜欢的结帐后挂钩 大多数时候 但有时我知道运行它会浪费时间 或者 因为它会删除并重建我的开发数据库 所以我不希望它去做它的事情 有没有跳过钩子的 git 选项 公平地说 我已经开始寻找一个了 我认为没有命令行选项可以完成您想要的操
  • 在两个单独的分支或存储库中管理项目后端和前端?

    我启动了一个移动应用程序项目 该项目将具有服务器端和应用程序本身 所以 在master分支我创建了2个项目myapp server and myapp然后我创建了另外 2 个分支backend and frontend我只想将与它们相对应的
  • 如何重命名 GitHub 网站上的目录/文件夹?

    我在 GitHub 网站上找到了一种方法rename https github com blog 1436 moving and renaming files on github一个文件并成功完成 我也找到了一种方法rename https
  • 节点项目的 Azure git 部署失败

    我正在尝试将我的项目部署到azure 它正在失败 这些是我采取的步骤 git init git config core longpaths true git add git commit m initial commit 所有这些都有效 我

随机推荐

  • javax.el.E​​LException:未找到提供程序 com.sun.el.E​​xpressionFactoryImpl

    尽管有很多问题解决方案 但我仍然坚持这个问题ELException org springframework beans factory BeanCreationException Error creating bean with name
  • 如何在Nuxt的asyncData方法中获取用户的IP?

    Nuxt 使用 asyncData 在服务器端运行代码 然后将其与数据对象合并 我想拨打一个需要我知道用户IP的电话 我看到我可以到达req object https nuxtjs org api context 确实有但它被埋了深 深 h
  • LNK2019:错误。使用 InternetOpen InternetReadFIle 的 C++ 程序中无法解析的外部符号

    我尝试编写一个简单的程序来从网站获取信息 我无法编译 因为我收到 InternetReadFile InternetOpenUrl 等的 LNK2019 错误 例如 1 gt GetInternetInfo obj 错误LNK2019 无法
  • 如何提高数据插入/更新性能?

    我需要提高数据加载的性能 当前的算法从表中进行完整选择 select Field1 Field2 FieldN from Table1 order by FieldM 新数据是从文本文件中读取的 例如 每个数据表行的文本文件行 该表有一个主
  • 如何通过 Puppeteer 获取元素的子元素

    我明白那个puppeteer拥有自己的手柄而不是标准手柄DOM元素 但我不明白为什么我不能通过找到的元素继续相同的查询 const els await page div parent for let i 0 i lt els length
  • Android模拟器SDCard因某种原因被删除

    我在 AVD 中创建了一个 3 2 使用 Google API 设备 但是 我最近似乎无法使用 SDCard 在使用时 Environment getExternalStorageState 我收到 已删除 如何重新安装 撤消删除 SD 卡
  • 使用 aws-cli 创建 api-gateway lambda 集成

    我需要使用 aws 客户端创建一个 api 网关 我使用 Web 控制台成功创建并集成了我的 aws lambda 函数 但我对 aws client 感到困惑 这些是我遵循的步骤 创建 api 网关并使用 Web 控制台与我的示例 lam
  • 如何用笑话模拟猫鼬链接查询

    在测试套件上我想用链接方法模拟模型findOne then select 登录服务 public loggingIn async loginDTO LoginDTO gt const user await UserModel findOne
  • Visual Studio 团队服务部署/构建证书错误

    我正在尝试使用 VSTS Visual studio 团队在线服务 中的持续集成和部署功能构建一个单击一次应用程序我们正在尝试使用托管代理 Visual studio 2015 构建此应用程序我们在使用强名称密钥文件签名时遇到了困难的错误
  • ORA-00060: 等待资源时检测到死锁

    我有一系列脚本作为 nohup 在托管 Oracle 10g 的 AIX 服务器上并行运行 这些脚本是由其他人编写的 旨在同时执行 所有脚本都在表上执行更新 我收到错误 ORA 00060 检测到死锁 等待资源 当我用谷歌搜索这个时 我发现
  • 如何插入包含页码、文件路径和图像的页脚?

    I m trying to format the footer so it has the page x out of y on the top right of the footer and then the image centered
  • 使用 Velocity 和 Jasmine 测试 Meteor 时需要超时

    对于流星 速度和茉莉花来说还很陌生 所以不确定我是否做错了什么 使用茉莉花来做它不适合的事情 或者这只是它的工作方式 我发现我需要为几乎所有测试设置超时才能让它们通过 应该是这种情况还是我做错了什么 例如 我正在运行一些测试来检查验证消息
  • 当列表项很少时,如何将页脚视图显示到屏幕末尾?

    我想向列表视图添加页脚 当列表项数量较多时 页脚效果很好 但是当列表视图的项目很少时 页脚会显示在屏幕中间 就在列表视图的下方 这看起来很破旧 在这种情况下 我希望页脚与父底部对齐 谢谢你的期待 这是你想要的最简单的例子 你可以自定义它
  • cocos2d中忽略精灵的透明区域

    我已经被困了好几个星期了 现在试图找出如何忽略对精灵透明区域的触摸 我一直在尝试使用本教程来跟踪像素完美碰撞 http www learn cocos2d com 2011 12 fast pixelperfect collision de
  • Python 单元测试 - 如何修补我正在测试的方法内部的异步调用

    我使用 unittest mock 为我的 python 代码构建测试 我有一个正在尝试测试的方法 其中包含对另一个函数的异步调用 我想修补该异步调用 以便我可以让 Mock 返回一个测试值asset id 而不是实际调用异步方法 我尝试了
  • std::memory_order_seq_cst 的工作原理

    我从以下位置获取了有关 std memory order seq cst 的示例 http en cppreference com w cpp atomic memory order http en cppreference com w c
  • HTML 输入换行文本而不是水平溢出

    我有一个input字段 用户将在其中输入文本 当文本变得太长时 输入字段会水平延伸 而不是垂直下降 我尝试添加这个CSS overflow hidden word wrap break word 但我没有运气 关于如何实现这一目标还有其他建
  • 在 VBA (Excel) 中获取时区信息

    我想在 VBA 中确定不同国家 地区在特定日期的 GMT UTC 时间偏移 包括夏令时 有任何想法吗 编辑 来自自我回答 谢谢 0xA3 我快速浏览了链接页面 我假设您只能获取 Windows 运行所在本地的 GMT 偏移量 Convert
  • 如何构建一个 GUI 以在 jupyter 笔记本中使用?

    这个想法是能够在笔记本中构建和使用 GUI 因此使用具有大量参数的长函数比仅在笔记本中键入字符更有效 显然不是具体细节 但如果有人可以指出一些可能有帮助的库 项目 链接或任何资源 我查遍了互联网 到目前为止什么也没有 PyData 中有一个
  • git clone 不签出活动分支

    我有一个远程裸存储库 有两个分支 master 和 testing 其中 HEAD 指 testing 克隆此存储库时 git 检查 master 如果 master 和 testing 位于同一修订版上 即 HEAD test maste