首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >git-subtree:从克隆的存储库推送更改

git-subtree:从克隆的存储库推送更改
EN

Stack Overflow用户
提问于 2012-10-09 22:08:33
回答 2查看 21.6K关注 0票数 12

我使用的是git-subtree(来自Avery Pennarun)。在我当前的git repo中,我当然有我所有的项目文件/文件夹和一个名为"lib“的子树。如果我现在使用git clone克隆这个git代码库,我会得到所有的项目文件和子树"lib“(一切正常)。我现在尝试的是:我在克隆的存储库中更改了子树"lib“中的某些内容,并尝试使用git subtree push将更改推回到子树"lib”的远程存储库,但不起作用。有什么问题吗?我必须先用git subtree add将其添加为子树吗?

提前进行Thx

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-10 20:56:43

免责声明,我想我只比你提前几天了解子树:-)

如果您只是使用git subtree push,那么您没有为子树提供足够的信息来提取和推送您的更改。

如果你正确地克隆了存储库,那么子树就已经在那里了。子树需要被告知你想从哪个子树推送(即使你只有一个),它也需要知道推送到哪里-具体地说,你不想推送到顶层存储库。因此,您需要类似以下内容:

代码语言:javascript
复制
git subtree push --prefix=lib git@github.com:arges-github/lib.git master

显然,repo和refspec应该进行更改以匹配您的repo。

如果您想要了解这里发生了什么(它确实有帮助),子树实际上将影响子树内文件的更改拆分到不同的分支中,然后将其推送到子树存储库。要查看发生的情况,请使用subtree split

代码语言:javascript
复制
git subtree split --rejoin --branch=shared-changes --prefix=lib

然后看看你做的分支:

代码语言:javascript
复制
git checkout lib-changes

然后,手动推送

代码语言:javascript
复制
git push git@github.com:arges-github/lib.git master

如果这不起作用,那么可能是您没有将子树合并到您的repo中。添加子树时:

代码语言:javascript
复制
 git subtree add --squash --prefix lib git@github.com:arges-github/lib.git master

您还需要合并子树并将其推送回顶级存储库。

代码语言:javascript
复制
 git subtree pull --squash --prefix lib git@github.com:arges-github/lib.git master
 git push
票数 21
EN

Stack Overflow用户

发布于 2014-12-03 08:33:55

我遇到了和你完全一样的问题,我基本上用罗杰·诺兰建议的方法解决了这个问题。但是,如果您像我一样不幸地使用不区分大小写的文件系统,那么您还必须确保每次执行pull和push操作时,您的前缀的大小写保持不变。

如果你把大小写搞混了,git会认为你有两个子树,而文件系统上只有一个子树。

因此,我最终得到的解决方案(以防对任何人有帮助)是:

  1. 创建将推送您的子树的脚本。将其命名为publish_<your-subtree-name>.
  2. Create,这是另一个将拉取您的子树的脚本。将其称为update_<your-subtree-name>.
  3. Create,这是您的头上的一个临时分支,并测试更新。如果您的脚本是正确的,您的临时分支将不会移动。
  4. 将子树存储库克隆到其他位置,添加测试提交,推送它,并尝试使用您刚刚编写的更新脚本将其拉入您的存储库。
  5. 如果一切正常,请删除您的临时分支,现在将两个脚本都签入到超级项目存储库。
  6. 然后,当您需要推送或拉取子树时,请使用脚本。

PS>参数很重要,特别是如果您的报告的不同分支拉取了子树的不同分支,并且您的项目中有多个子树。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12801936

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档