Tag: git submodules

如何将Git子模块的指针恢复到存储在存储库中的提交?

我在我的主git仓库中有一个git子模块。 据我了解,主回购存储一个SHA值(某处…),指向子模块的“链接到”的具体提交。 我进入我的子模块并inputgit checkout some_other_branch 。 我不知道我来自哪个承诺。 我想恢复该指针,以便主repo和子模块再次同步。 我的第一个(可能是天真的)本能就是说git reset –hard – 这似乎适用于其他任何事情。 令我惊讶的是,这并不适用于这种情况。 所以我想通了,我可以inputgit diff ,记下子模块指针所使用的SHA ID,然后进入子模块和git checkout [SHA ID] …但是肯定有一个更简单的方法吗? 由于我还在学习git submodules,如果有我不知道的概念的话,请随时纠正我的术语。

回购克隆时,清空Git子模块文件夹

我有一个回购托pipe在https://github.com/aikiframework/json 。 在我的本地副本上,我使用该命令添加了一个子模块 git submodule add git@github.com:jcubic/json-rpc.git json-rpc 然后我做了一个提交和推送,并且变化出现在GitHub上(我可以点击它)。 但是当我克隆回购 git clone https://github.com/aikiframework/json.git 子模块文件夹json-rpc是空的。 我在这里错过了什么? 我忘记了什么吗? 为什么这个文件夹是空的?

重命名一个git子模块

有没有简单的方法来重命名一个git子模块目录(除了经历删除它的整个动议,并重新添加一个新的目标名称)。 而我们在这里,为什么我不能在父目录中执行以下操作: git mv old-submodule-name new-submodule-name

如何摆脱Git子模块未跟踪的状态?

我似乎无法摆脱Git子模块中未跟踪的内容。 运行git status产生: #在分支主机上 #未进行提交的更改: #(使用“git add …”更新将提交的内容) #(使用“git checkout – …”放弃工作目录中的更改) #(提交或放弃子模块中未跟踪或修改的内容) # #修改:捆绑/ snipmate(未跟踪的内容) #修改:捆绑/环绕(未跟踪的内容) #修改:捆绑/尾随空白(未追踪的内容) #修改:捆绑/ zencoding(未跟踪的内容) # 没有更改添加到提交(使用“git add”和/或“git commit -a”) 添加–ignore-submodules参数隐藏这些消息; 但是我想知道是否有办法以更合适的核心方式去除这些污垢。

如何提取一个git子目录并从中创build一个子模块?

几个月前我开始了一个项目,并将所有内容存储在主目录中。 在我的主目录“Project”中有几个包含不同内容的子目录:Project / paper包含一个用LaTeX Project / sourcecode编写的文档/ RailsApp包含了我的Rails应用程序。 “项目”被GIT化,“纸”和“RailsApp”目录中都有很多提交。 现在,我想为我的“RailsApp”使用cruisecontrol.rb,不知道是否有办法在不丢失历史的情况下从“RailsApp”中创build一个子模块。 有什么build议么?

在添加git子模块时,“你在一个尚未出生的分支”

我试图添加一些submodules到我的.vim/bundles目录,当我试图添加这个特定的回购时,Git给了我一个奇怪的错误,我从来没有见过: $ git submodule add -f git://github.com/derekwyatt/vim-scala.git .vim/bundle/vim-scala fatal: You are on a branch yet to be born Unable to checkout submodule '.vim/bundle/vim-scala' 任何想法可能导致这个? 如果我克隆相同的repo到testing目录(不通过submodule命令),它工作正常,并创build预期的文件。

有没有办法使GIT拉动自动更新子模块?

有没有办法自动有git submodule update (或最好是git submodule update –init git pull完成? 寻找一个gitconfiguration设置,或者一个git别名来帮助这个。

子模块内部的Git子模块(嵌套子模块)

git子模块可能是由其他几个git子模块构成的,超级git回购可以为每个子模块获取内容? 我试图用明显的/天真的方法来创build一个拥有几个子模块的git仓库。 然后添加这个git回购作为一个子模块的另一个git回购。 然后试图通过git submodule init从超级git仓库的根目录下拉git submodule update 。 但是这不能获取子子模块。

我怎样才能将一个目录从一个Git仓库移动到一个新的仓库,同时保持历史?

我已经inheritance了包含多个项目在不同的目录中的git存储库。 我想将资源库分成新的单独的资料库,每个项目一个,然后让主资源库包含项目作为子模块。 如果可能的话,我想尽可能保持个别项目的修订历史。 我可以克隆每个项目的存储库,并每次删除所有其他项目,但有没有更好的方法来避免在每个新的项目存储库中克隆历史logging?

我怎么能链接在一个git仓库的依赖?

在我的脚本中,我经常使用拥有自己的回购库的图书馆(我的或他人的)。 我不想在我的回购中复制这些内容,并在每次出现新版本时都更新它们。 但是,当有人克隆回购时,它应该仍然在本地工作,没有断开链接。 任何想法,我可以做什么?