我正在尝试使用git的子树merge策略,其中我要merge到的子目录嵌套得相当深——目前有四层深。我遵循了指示here要将模块存储库添加为远程,请运行gitread-tree以将远程代码放入我本地存储库的子目录中,然后提交这些更改。当我尝试将更改从远程pull并merge到我的主项目的master分支时,我的问题就来了。上面页面的第5步建议使用-s子树开关进行gitpull。当我的子目录是一层、两层或三层而不是四层时,这对我来说是正确的。这是merge到2层深的子目录的结果。可以看到sites/all/中的README文件已经正确更新。在我的远程仓库中,自述文件位于根目录中。$git
我读了很多关于git子模块应该有多糟糕的文章,但我不确定这是否只是那些认为它有局限性的人的提示,或者它是否有严重的问题(尤其是关于我的用例)。我只是想像这样在我的repo中包含不同的repowebsite/libs/js/fs-slides[external]fs-dialog[external]并且必须有可能轻松更新这些存储库。据我所知,从repo协议(protocol)中只包含一个文件并不容易,对吗?(不过没关系。)我应该为此使用子模块吗?或者它有什么问题吗?还是子树更容易? 最佳答案 子模块非常适合您的情况,特别是因为您不介意
我读了很多关于git子模块应该有多糟糕的文章,但我不确定这是否只是那些认为它有局限性的人的提示,或者它是否有严重的问题(尤其是关于我的用例)。我只是想像这样在我的repo中包含不同的repowebsite/libs/js/fs-slides[external]fs-dialog[external]并且必须有可能轻松更新这些存储库。据我所知,从repo协议(protocol)中只包含一个文件并不容易,对吗?(不过没关系。)我应该为此使用子模块吗?或者它有什么问题吗?还是子树更容易? 最佳答案 子模块非常适合您的情况,特别是因为您不介意
所以,我有一个更大的(闭源)项目,并且在这个项目的上下文中创建了一个库,我认为它在其他地方也很有用。我现在想在它自己的项目中分离出这个库,它可以在github或类似的地方作为开源。当然,图书馆(及其历史)不应包含我们项目的痕迹。git-subtree似乎是这里的解决方案,但它并不完全适合。我的目录布局是这样的(因为它是一个Java项目):击剑游戏(gitworkdir)来源德击剑游戏交通(我的图书馆)协议(protocol)(库的一部分)fencing(与库交互的主要项目的一部分)客户端(与库交互的主要项目的一部分)服务器(与库交互的主要项目的一部分)客户(主要项目的一部分)服务器(主
所以,我有一个更大的(闭源)项目,并且在这个项目的上下文中创建了一个库,我认为它在其他地方也很有用。我现在想在它自己的项目中分离出这个库,它可以在github或类似的地方作为开源。当然,图书馆(及其历史)不应包含我们项目的痕迹。git-subtree似乎是这里的解决方案,但它并不完全适合。我的目录布局是这样的(因为它是一个Java项目):击剑游戏(gitworkdir)来源德击剑游戏交通(我的图书馆)协议(protocol)(库的一部分)fencing(与库交互的主要项目的一部分)客户端(与库交互的主要项目的一部分)服务器(与库交互的主要项目的一部分)客户(主要项目的一部分)服务器(主
我们使用子树部署láthisGist部署我们的子目录Yeoman项目。在我们的例子中,该分支称为production,而不是gh-pages。直到昨天Git服务器拒绝了命令gitsubtreepush--prefixdistoriginproduction,说![rejected]9fe1683aa574eae33ee6754aad702488e0bd37df->production(non-fast-forward)error:failedtopushsomerefsto'git@gitlab.sdstate.edu:web-and-new-media/graduation2015.
我们使用子树部署láthisGist部署我们的子目录Yeoman项目。在我们的例子中,该分支称为production,而不是gh-pages。直到昨天Git服务器拒绝了命令gitsubtreepush--prefixdistoriginproduction,说![rejected]9fe1683aa574eae33ee6754aad702488e0bd37df->production(non-fast-forward)error:failedtopushsomerefsto'git@gitlab.sdstate.edu:web-and-new-media/graduation2015.
例如,您可以执行gitremote--verbosegit将显示您在项目中拥有的所有Remote,gitbranch将显示所有分支并向当前分支发出信号,但是如何列出所有子树,而没有任何破坏性命令?gitsubtree将给出用法示例,但不会列出任何内容。子树只有add,pull,push,split,merge. 最佳答案 没有任何明确的方法可以做到这一点(至少目前是这样),这里列出了唯一可用的命令(正如您自己指出的,但这里是future寻求者的引用):https://github.com/git/git/blob/master/co
例如,您可以执行gitremote--verbosegit将显示您在项目中拥有的所有Remote,gitbranch将显示所有分支并向当前分支发出信号,但是如何列出所有子树,而没有任何破坏性命令?gitsubtree将给出用法示例,但不会列出任何内容。子树只有add,pull,push,split,merge. 最佳答案 没有任何明确的方法可以做到这一点(至少目前是这样),这里列出了唯一可用的命令(正如您自己指出的,但这里是future寻求者的引用):https://github.com/git/git/blob/master/co
gitsubtree解决什么问题?我应该何时以及为何使用该功能?我读到它是usedforrepositoryseparation。但是,为什么我不创建两个独立的存储库,而是将两个不相关的存储库merge为一个?这个GitHub教程解释了howtoperformGitsubtreemerges。我有点知道如何使用它,但不知道何时(用例)和为什么,以及它与gitsubmodule的关系。当我依赖于另一个项目或库时,我会使用子模块。 最佳答案 当你在git的上下文中使用术语'subtree'时,你应该小心明确地注意你在说什么,因为实际上有