当使用gitcheckout切换分支时,我假设大多数时候你会想要更新你的子模块。在什么情况下您不想在切换后更新子模块?如果这由gitcheckout自动完成,会出现什么问题?更新示例:分支A在3852f1有子模块S分支B在fd72d7有子模块S在分支A上,gitcheckoutB将生成分支B的工作副本,子模块S位于3852f1(带有修改后的S)。gitsubmoduleupdate将在fd72d7checkoutS。 最佳答案 gitcheckout--recurse-submodules已添加到git2.13发行说明中提到了这一点
我有一个文件夹,它是一个git仓库。它包含一些文件和.gitmodules文件。现在,当我执行gitinit和gitsubmoduleinit时,后一个命令输出什么也没有。如何帮助git查看在.gitmodules文件中定义的子模块,而无需再次手动运行gitsubmoduleadd?更新:这是我的.gitmodules文件:[submodule"vim-pathogen"]path=vim-pathogenurl=git://github.com/tpope/vim-pathogen.git[submodule"bundle/python-mode"]path=bundle/pytho
我在project_dir/vendor/submodule_one中的项目中添加了一个子模块,现在每次运行gitstatus时,我都会得到modified:vendor/submodule_one(新提交)。我的问题是处理此问题的最佳方法是什么?我是否将vendor/submodule_one文件夹添加到我的.gitignore中,因为我的主项目不需要了解我的子模块的细节?或者当我对我的子模块进行更改和提交更改时,我是否也需要在我的主项目中进行提交?刚开始使用子模块,除了设置它们之外似乎找不到太多信息。 最佳答案 不,您不需要将您
背景在Linux上使用Git1.8.1.1。存储库如下所示:masterbook子模块创建如下:$cd/path/to/master$gitsubmoduleaddhttps://user@bitbucket.org/user/repo.gitbookbook子模块是干净的:$cd/path/to/master/book/$gitstatus#Onbranchmasternothingtocommit,workingdirectoryclean问题另一方面,master显示book子模块有“新提交”:$cd/path/to/master/$gitstatus#Onbranchmaste
自mac上的git版本1.9.3(AppleGit-50)起,我如何删除git子模块?我正在阅读很多过时的信息,许多开发人员告诉我他们不会工作。目前的方式是什么?gitdeinitpathToSubModule会成功吗?我认为可行的步骤是here但评论说他们不会。让我解释一下我目前的情况以及我需要完成的工作。我已经安装了theQuickrepository并将其作为子模块添加到我的项目中。此代码已checkin,其他人正在使用它。我现在需要做的是fork相同的Quick存储库并将其托管在我公司拥有的更安全的github上(因此是一个完全不同的私有(private)github)。for
好的。所以我以为我已经舔过了……但现在……我有一个项目,其中包含一个来自GitHub的小型库作为子模块。在该super项目的原始版本中,子模块按预期工作。但是,我只是克隆了super项目,做了我认为应该做的事情:“gitsubmoduleinit”,让子模块的目录出现,但它是空的。如果我现在尝试做gitsubmoduleupdate我明白了fatal:NeededasinglerevisionUnabletofindcurrentrevisioninsubmodulepath'external_libraries/BEACHhtml'如果我尝试gitsubmoduleforeachgi
如何用不同的git存储库替换git子模块?具体来说,我有一个子模块:位于./ExternalFrameworks/TestFramework指向一个git仓库git@github.com:userA/TestFramework.git我希望它现在指向git@github.com:userB/TestFramework.git。问题是当我用here描述的方法删除子模块时,然后使用命令重新添加它gitsubmoduleaddgit@github.com:userB/TestFramework.git我收到这个错误:Agitdirectoryfor'ExternalFrameworks/Te
这是我的.gitmodules文件的部分内容:[submodule"src/static_management"]path=src/static_managementurl=git://github.com/eykd/django-static-management.git[submodule"external/pyfacebook"]path=external/pyfacebookurl=http://github.com/sciyoshi/pyfacebook.git但是,.git/config只包含第一个:[submodule"src/static_management"]url
通常情况下,您正在编写某种项目,过了一段时间后,您会清楚地知道该项目的某些组件实际上作为独立组件(也许是一个库)很有用。如果您很早就有了这个想法,那么很可能大部分代码都在自己的文件夹中。有没有办法将Git项目中的一个子目录转换为子模块?理想情况下,该目录中的所有代码都从父项目中删除,子模块项目被添加到它的位置,具有所有适当的历史记录,并且所有父项目提交都指向正确的子模块提交。 最佳答案 要将子目录隔离到它自己的存储库中,请在原始存储库的克隆上使用filter-branch:gitclonecdgitfilter-branch--su
我将如何为特定标签或提交添加Git子模块? 最佳答案 子模块存储库处于分离的HEAD状态,指向特定的提交。更改该提交只需checkout不同的标签或提交,然后将更改添加到父存储库。$cdsubmodule$gitcheckoutv2.0PreviousHEADpositionwas5c1277e...bumpedversionto2.0.5HEADisnowatf0a0036...version2.0父存储库上的git-status现在将报告脏树:#Onbranchdev[...]##modified:submodule(newco