git - Git切换并拉新分支
问题描述
我克隆了一个 git 分支,比如说 master,我想拉一个新分支,比如说 test。
当我最初拉主人时,我正在做一个 --depth=1
然后当我拉新分支时,我想让它保持浅。所以我想做的就是拉出我要切换到的新分支的历史记录。
我以为我可以 git clone master 然后只是 git pull test 但这会返回不相关的历史问题。
反正我就是想拿新的分支,想看看拉进了哪些文件以及master和test的区别。这可能是我正在测试的特定回购的问题,但我不希望将来出现这个问题。
这样的事情可能吗?
解决方案
使用--depth
参数的建议git clone
如下:
- 不要这样做。
- (仅适用于 Git 专家)暂时不要这样做。
(向杰克逊博士道歉)。
更严重的是,--depth
启用--single-branch
. 如果你不明白--single-branch
,你就已经有麻烦了:如果你不知道这git pull
意味着 git fetch
后面跟着第二个 Git 命令,那么你的麻烦就更大了。
学习所有这些内容并没有错。然后您将成为一名 Git 专家,您将进入上面的第 2 步,在此您测量使用非常浅的存储库与使用更深的或非浅的存储库之间的时间差,以及何时以及如何进行使用浅层存储库,以使其他一切正常。但在那之前,--depth 1
完全不考虑。您将获得一个普通的存储库,而不是一个浅层存储库,并且其他一切都会更好地工作。Git 对于大多数人来说已经足够难用了;当您在 Git-sea 中游泳时,无需将自己绑在一个巨大的锚上。
这样的事情可能吗?
是的,但它是不平凡的。您需要:
- 撤消每个单分支,或完全覆盖该部分(添加
--no-single-branch
以获得浅但全分支的克隆)。 - 使用足够的历史——历史就是提交,无论需要什么深度——这样 Git 就有足够的信息来做你想做的事。
如果您省略--depth
,您将获得一个正常的克隆,所有这些都更容易。
推荐阅读
- r - 无法删除不相关的浮点值
- python - Python:在其他值的字典中使用匿名列表?
- javascript - 如何在javascript中只允许数字和格式值
- java - 如何将具有多个过滤条件的 if-else if 链接块代码转换为具有空检查的单个过滤条件?
- java - 如何使用 Spring Boot 进行 Getmapping("/login")?
- java - 如何改变图像的透视
- grails - 如何创建密码过期并且用户必须在不使用 Spring Security 的情况下更新他的密码?
- python - 无法在 python 中使用应用程序运行 docker 映像
- java - 如何将 postgres 脚本传输到 hsqldb 脚本?
- r - 如何通过多个变量(列)将长格式转换为宽格式数据并相互堆叠?