gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 13:46:06 25 4
gpt4 key购买 nike

我正在使用 git-subtree(来自 Avery Pennarun)。在我当前的 git 存储库中,我当然有我的所有项目文件/文件夹和一个名为“lib”的子树。如果我现在使用 git clone 克隆这个 git 存储库,我将获得所有项目文件并且子树“lib”(一切都应该如此)。我现在尝试的:我在克隆的子树“lib”中更改了一些内容存储库并尝试使用以下命令将更改推回子树“lib”的远程存储库git subtree push,但是没有用。问题是什么?我必须添加它吗首先使用 git subtree add 作为子树?

提前致谢

最佳答案

免责声明,我怀疑我只比你早几天了解子树:-)

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

如果您正确克隆了存储库,子树将已经存在于其中。需要告诉子树您想要从哪个子树推送(即使您只有一个子树),并且它还需要知道推送到哪里 - 具体来说,您不想推送到顶级存储库。因此,你想要这样的东西:

git subtree push --prefix=lib git@github.com:arges-github/lib.git master

显然应该更改存储库和引用规范以匹配您的存储库。

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

git subtree split --rejoin --branch=shared-changes --prefix=lib

然后看看您创建的分支:

git checkout lib-changes

并且手动推送它们

git push git@github.com:arges-github/lib.git master

如果这不起作用,则可能是您尚未将子树 merge 到您的存储库中。当您添加子树时:

 git subtree add --squash --prefix lib git@github.com:arges-github/lib.git master

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

 git subtree pull --squash --prefix lib git@github.com:arges-github/lib.git master
git push

关于git-subtree:从克隆的存储库推送更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12801936/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com