草庐IT

git - 将 Git 子模块转换为子树后 merge 错误

我有一个项目,我最初使用子模块来处理一些相关代码。事实证明,子模块并不真正适合这个项目(而且它们在实践中很难使用),所以我将每个子模块转换为一个子树(使用新的git-subtree特性)。在我的工作存储库中,我已成功删除每个子模块并将旧的子模块存储库添加为子树。没问题。当我转到另一个克隆并尝试从第一个克隆中pull时,我在merge步骤中收到以下错误:error:Thefollowinguntrackedworkingtreefileswouldbeoverwrittenbymerge:sub/.gitignoresub/Makefilesub/READMEsub/src/main.c

Git 子模块与 Nuget 包

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭3个月前。Improvethisquestion我们的团队已经尝试使用git子模块来实现我们大多数产品共享的一些核心CRUD功能。我们还成功地将Nuget包(现在是自托管的)用于一些常见的实用程序。我们的核心功能经常更改,以致于正确提交子模块被证明是我们预期的更多苦差事。我正在考虑将核心功能从子模块移动到Nuget包,但我想知道频繁更新包是否会在Nuget中更加痛苦。在对我们的架构和流程进行这种稍微侵入性的更改之前,是否有人对我可能遇

git - 用 git 子模块替换了第三方代码,现在我不能切换分支

故事是这样的:我有2个git分支master和develop我目前正在开发。我早就在目录Vendor/MGTwitterEngine的存储库中包含了第三方库的源文件。此代码已merge到master中。现在,在分支develop上,我删除了库并将其替换为git子模块并提交。问题是我无法再切换回master分支。如果我尝试,我会收到以下错误:Thefollowinguntrackedworkingtreefileswouldbeoverwrittenbycheckout:Vendor/MGTwitterEngine/MGTwitterHTTPURLConnection.hVendor/M

git - 添加一个无法从索引中删除的子模块

我正在尝试添加一个已经存在的子模块(不同的git远程存储库)。由于我之前没有搜索过如何正确执行此操作,我想我弄乱了我的存储库,我需要一些帮助来重新修复它。我已经从.gitmodules和.git/config中删除了关于我要删除的子模块的所有相关部分。我还验证了我的.git/目录中没有模块目录。但是,当我运行命令gitrm--cachedpath_to_submodule时,会显示以下消息:fatal:pathspec'path_to_submodule'didnotmatchanyfiles由于之前的命令失败,当我尝试使用新定义再次添加相同的子模块时,运行命令gitsubmodule

git - 如何公开使用子模块,但符号链接(symbolic link)到本地​​的单个克隆?

我正在体验我的第一个Git子模块。我有一些项目依赖于同一个子项目。我使这些项目保持同步,所以我使用"submodulebranch"feature(例如gitsubmoduleadd-bmaster[URL])。虽然我希望公共(public)GitHub存储库传达子模块关系,但在我自己的工作流程中,我真的只希望在我的磁盘上有一个共享代码库的克隆。我想我可以只设置子模块,然后用符号链接(symboliclink)做一个switcheroo。但是当我这样做时,我得到了这个:OnbranchmasterChangesnotstagedforcommit:(use"gitadd..."toup

来自 Hg repo 的 git 子模块?

我有一个非常古老的项目,它直接包含另一个项目的源代码,而不是将其作为库链接。在糟糕的日子里,当我将所有内容保存在CVS中时,我将外部代码放在供应商分支上并定期导入。现在我的项目在git中,将外部项目作为子模块包含在内会更有意义。但是,有一个问题:外部项目已经迁移到Mercurial。我找到了git-hg和hg-git项目,但我不确定这两个项目是否能正确处理子模块。有没有办法创建一个指向Hg存储库而不是git存储库的git子模块? 最佳答案 自hg-git确实提到尚不支持子模块,只留下一个手动选项:在您可以推送访问的地方设置一个Git

git - git子模块究竟是如何工作的

.gitmodule文件仅指定模块存储库url。gitsubmodule如何知道要下载哪个版本?它似乎总是检查最新版本。那么,开发者如何保证主工程与子模块的兼容性呢? 最佳答案 您的子模块表示为具有特殊模式的特殊条目(称为gitlink,请参阅“Nestedgitrepositorieswithoutsubmodules?”):(参见“Checkoutpastgitsubmodulecommit”)newfilemode160000index0000000..4c4c5a2所以它不是检查“最新”版本,而是始终检查特定的SHA1,并且

git - 我如何 "git clone"一个 repo,包括它的子模块?

我如何克隆一个git存储库以便它也克隆它的子模块?运行gitclone$REPO_URL只会创建空的子模块目录。 最佳答案 在Git2.13及更高版本中,可以使用--recurse-submodules代替--recursive:gitclone--recurse-submodules-j8git://github.com/foo/bar.gitcdbar编者注:-j8是一个可选的性能优化,在2.8版中可用,一次可以并行获取多达8个子模块—请参阅mangit-clone.Git1.9到2.12版(-j标志仅在2.8+版中可用):gi

git - 将 git 子模块移动到另一个目录后失败,错误为 'git status --porcelain' failed in submodule

最初我有以下(简化的)repo结构:MyRepoexternal1/MySub(gitsubmodule).gitsubmodules在哪里$cat.gitsubmodules[submodule"external1/MySub"]path=external1/MySuburl=user@repo:/remoterepo/externals/MySub.git然后我想将MySubmodule移动到同一个git存储库中的另一个目录,例如external2所以结构如下:MyRepoexternal2/MySub(gitsubmodule).gitsubmodules我所做的和所想的就足够了

Git/GitHub : fork, 子树 merge 或外部代码的子模块?

我想将一个现有项目(托管在GitHub上)merge为我的项目的一部分(放入子目录中),同时保持历史记录和更新该项目的能力。我发现大约可以采用三种方法:Fork原始项目,将原始内容移动到子目录中并将其推送到我的GitHub存储库。启动一个新的repo,与现有的repo进行子树merge,然后推送到我的GitHubrepo。克隆现有的repo,创建一个新的主repo,将克隆的repo作为子模块放入主repo,推送。(1)变体可能是GitHub上更可取的变体,因为他们可能可以共享源代码。但从逻辑上讲,我的项目不是现有项目的分支。相反,现有的只是一个模块。此外,我不确定将现有代码移动到子目录