|
|
单身的跑步鞋 · Type.GetMethod Method ...· 1 年前 · |
|
|
慷慨大方的麦片 · Exception——java.text.P ...· 1 年前 · |
|
|
干练的西装 · 数据库全量SQL分析与审计系统性能优化之旅- ...· 2 年前 · |
|
|
灰常酷的蘑菇 · javascript - How to ...· 2 年前 · |
我想弄清楚“git subtree”是如何工作的。我已经遵循了
this page
上的所有说明,但在尝试将子树项目合并到我自己的代码库(“步骤2”):
fatal: refusing to merge unrelated histories
时,总是出现错误。
我读过
this post
,当我使用
--allow-unrelated-histories
选项时,它似乎工作得很好。然而,我不确定我是否应该使用this...My印象,因为子树的全部意义是在一个存储库中拥有不相关的历史,所以必须添加这个选项感觉很奇怪。然而,我应该添加它吗,或者我做错了什么?
我在osx 10.11.6上使用git v2.9.3
我已经在这个问题上挣扎了一段时间,我想我找到了解决方案。
我是git的新手,所以如果我使用了错误的名称,请原谅。
问题可能是在运行git subtree add命令时使用
--squash
选项造成的。
尝试删除子树(删除远程存储库并删除所有本地文件、提交和推送)。然后,在不使用
--squash
选项的情况下重做添加子树。
然后我跳到我的子树存储库,做了一些更改,提交并推送,然后跳回我的主超级项目存储库,并执行git子树拉取。它给了我一些关于工作树有修改的错误。为了解决这个问题,我做了一个git签出主机,然后是一个git推送,然后再次尝试了子树拉取。它起作用了。
希望这能有所帮助。
如果子树是使用
--squash
添加的,则在拉取时还需要使用
--squash
git subtree pull --prefix=<folder-goes-here> <remote-goes-here> <branch-goes-here> --squash
我不是专家。
但我发现了些东西。我最初只是试着做一个正常的拉动。但我发现了这个特定的子树拉动。
git subtree pull --prefix myPrefixname https://github.com/subTreeRepo.git master --squash
其中master是课程的分支名称
(来自
https://developer.atlassian.com/blog/2015/05/the-power-of-git-subtree/
)
对我来说起作用的是将
git merge
与子树策略结合使用:
git merge -s subtree -Xsubtree="$prefix" subremote/branch --allow-unrelated-histories
git subtree
使用类似于引擎盖下的东西。
Copyright © 2013 - 2023 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号: 粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
扫码关注腾讯云开发者
领取腾讯云代金券