git submodule add -b工作怎么样?
添加具有特定分支的子模块后,新的克隆存储库(之后git submodule update --init)将处于特定提交,而不是分支本身(git status在子模块上显示"当前不在任何分支上").
我无法找到任何信息.gitmodules或.git/config关于子模块的分支或任何具体的承诺,那么,如何Git的数字出来?
此外,是否可以指定标签而不是分支?
我正在使用1.6.5.2版.
我今天最终得到了一个独立的头,同样的问题如下所述:git push说一切都是最新的,即使我有本地更改
据我所知,我没有做任何与众不同的事情,只是从我当地的回购中提交和推送.
那我怎么最终得到一个detached HEAD?
我有一个git回购,另一个作为submodule依赖.在我的项目的根(其中.git,.gitsubmodules等等都是)我叫
git submodule update
Run Code Online (Sandbox Code Playgroud)
此操作失败,并显示以下消息:
在子模块路径'src/framework'中获取,但它不包含cc8c38e9d853491c672452d8dbced4666fc73ec8.直接获取该提交失败.
在哪里src/framework是我的项目(PROJECT_ROOT/src/framework)的子目录,应该是第三方回购的地方.给定的提交哈希值是有效的.
我也尝试过,git clone --recursive <my-repo>但也失败了.
我的内容.gitsubmodules是
[submodule "src/framework"]
path = src/framework
url = git@gitlab-blah-internal.de:gh/framework.git
Run Code Online (Sandbox Code Playgroud)
除此之外,我必须注意以下重要事实:由于最近的frameworkrepo 更新我的代码中断因此我真的需要检索它的特定版本,其中一切正常.
如何更新子模块以及使用哪个 Git 客户端?
我目前正在使用 GitKraken .. 但工作起来并不友好,因为你必须打开每个子模块(一个接一个)来更新它们,然后返回 git 主模块并更新所有子模块。
我们对每个子模块使用这个工作流程(提交、拉取和推送):对吗?
谷歌搜索没有得出任何结论性的答案。
我第一次使用 git 子模块。努力理解如何全面创建分支并将它们添加到所有远程存储库中。
目前我的文件结构类似于以下内容:
-parent_repo
|
|_ submodule_1
|_ submodule_2
|_ submodule_3
|_ submodule_4
|_ submodule_5
|_ submodule_6
|_ submodule_7
Run Code Online (Sandbox Code Playgroud)
如果我在父仓库上创建一个分支:
(master) $ git checkout -b feature/my_feature
(feature/my_feature) $ git commit -m "created my_feature"
(feature/my_feature) $ git push -u origin feature/my_feature
Run Code Online (Sandbox Code Playgroud)
我想在包括父模块在内的所有子模块中创建一个分支。之后,所有分支都被远程推送到每个子模块及其受尊重的存储库。
尝试了以下步骤:
$ git submodule foreach -b branch_name
$ git push --recurse-submodules=on-demand
$ git submodule foreach "(git checkout branch_name; git pull)&"
Run Code Online (Sandbox Code Playgroud)
..只是失败了。找不到第一个命令。
..如果我这样做:
$ git config -f .gitmodules submodule.submodule_1.branch branch_name
$ git submodule update --remote
Run Code Online (Sandbox Code Playgroud)
git 返回:
fatal: Needed …Run Code Online (Sandbox Code Playgroud)