gpt4 book ai didi

git - 使用 git 子模块创建多个远程分支

转载 作者:行者123 更新时间:2023-12-05 00:49:25 25 4
gpt4 key购买 nike

我是第一次使用 git 子模块。努力了解如何全面创建分支并将它们添加到所有远程存储库中。

目前我的文件结构如下:

-parent_repo
|
|_ submodule_1
|_ submodule_2
|_ submodule_3
|_ submodule_4
|_ submodule_5
|_ submodule_6
|_ submodule_7

如果我在父仓库上创建一个分支:

(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

我想在包括父模块在内的所有子模块中创建一个分支。之后,所有分支都被远程推送到每个子模块及其尊重的 repos。

尝试了以下步骤:

$ git submodule foreach -b branch_name
$ git push --recurse-submodules=on-demand
$ git submodule foreach "(git checkout branch_name; git pull)&"

..只是失败了。未找到第一个命令。

..如果我这样做:

$ git config -f .gitmodules submodule.submodule_1.branch branch_name
$ git submodule update --remote

git 返回:

fatal: Needed a single revision
Unable to find current origin/branch_name revision in submodule path 'submodule_1'

最佳答案

Submodule tips :

For example, let’s say we want to start a new feature or do a bugfix and we have work going on in several submodules.
We can easily stash all the work in all our submodules:

$ git submodule foreach 'git stash'
Entering 'CryptoLibrary'
No local changes to save
Entering 'DbConnector'
Saved working directory and index state WIP on stable: 82d2ad3 Merge from origin/stable
HEAD is now at 82d2ad3 Merge from origin/stable

Then we can create a new branch and switch to it in all our submodules:

$ git submodule foreach 'git checkout -b featureA'
Entering 'CryptoLibrary'
Switched to a new branch 'featureA'
Entering 'DbConnector'
Switched to a new branch 'featureA'

那么你仍然需要在父 repo 中创建相同的分支,添加、提交和推送,因为所有子模块 repos 都会发生变化。

但请记住:这些是不同的分支(即使它们具有相同的名称),每个分支都特定于自己的存储库(父存储库或子模块存储库)。

关于git - 使用 git 子模块创建多个远程分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40984170/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com