首页 > 解决方案 > Git切换并拉新分支

问题描述

我克隆了一个 git 分支,比如说 master,我想拉一个新分支,比如说 test。

当我最初拉主人时,我正在做一个 --depth=1

然后当我拉新分支时,我想让它保持浅。所以我想做的就是拉出我要切换到的新分支的历史记录。

我以为我可以 git clone master 然后只是 git pull test 但这会返回不相关的历史问题。

反正我就是想拿新的分支,想看看拉进了哪些文件以及master和test的区别。这可能是我正在测试的特定回购的问题,但我不希望将来出现这个问题。

这样的事情可能吗?

标签: git

解决方案


使用--depth参数的建议git clone如下:

  1. 不要这样做。
  2. (仅适用于 Git 专家)暂时不要这样做

向杰克逊博士道歉)。

更严重的是,--depth启用--single-branch. 如果你不明白--single-branch,你就已经有麻烦了:如果你不知道这git pull 意味着 git fetch后面跟着第二个 Git 命令,那么你的麻烦就更大了。

学习所有这些内容并没有错。然后您将成为一名 Git 专家,您将进入上面的第 2 步,在此您测量使用非常浅的存储库与使用更深的或非浅的存储库之间的时间差,以及何时以及如何进行使用浅层存储库,以使其他一切正常。但在那之前,--depth 1完全不考虑。您将获得一个普通的存储库,而不是一个浅层存储库,并且其他一切都会更好地工作。Git 对于大多数人来说已经足够难用了;当您在 Git-sea 中游泳时,无需将自己绑在一个巨大的锚上。

这样的事情可能吗?

是的,但它是不平凡的。您需要:

  • 撤消每个单分支,或完全覆盖该部分(添加--no-single-branch以获得浅但全分支的克隆)。
  • 使用足够的历史——历史就是提交,无论需要什么深度——这样 Git 就有足够的信息来做你想做的事。

如果您省略--depth,您将获得一个正常的克隆,所有这些都更容易。


推荐阅读