标签: git-submodules

git rm -r在子模块中不起作用

尝试按照git book中的描述更改子模块

$ git rm -r vendor/html-minifier
$ git submodule add https://github.com/kangax/html-minifier.git vendor/html-minifier
Run Code Online (Sandbox Code Playgroud)

但它失败了以下

rm 'vendor/html-minifier'
fatal: git rm: 'vendor/html-minifier': Is a directory
Run Code Online (Sandbox Code Playgroud)

git git-submodules git-rm

5
推荐指数
1
解决办法
1319
查看次数

Git与ClearCase中的只读组件有什么相同之处?

我的公司正在将我们的版本控制工具从Rational ClearCase更改为Git.我们有以下开发方案,我们很好奇Git是否有适当的模式来实现我们在ClearCase中的相​​同行为.

以下是关于我们情况的一些基本观点:

  1. 我们有许多独立的应用程序.我们称之为AppA,AppB和AppC.
  2. 我们还有一些所有项目共有的文件(构建脚本等).我们称之为工具.
  3. 对于AppA,AppB或AppC代码的任何给定剪切,我们需要特定的工具代码剪切.
  4. 我们的大多数开发人员从不修改工具代码.

对于ClearCase,我们这样建模:

组件:app_a,app_b,app_c,工具

项目:AppA,AppB,AppC,工具

Project AppA包括app_a作为读/写组件,工具作为只读组件.

Project AppB包括app_b作为读/写组件和工具作为只读组件.

Project AppC包括app_c作为读/写组件和工具作为只读组件.

项目工具包括作为读/写组件的工具.

App*项目的每个基线都引用app_*和工具组件的基线.当开发人员重新定义到建议的基线时,他们会从两个组件中获取更改.

对于Git,我们认为子模块可能是最接近正确答案的东西.但是,在提取/重新定位存储库时,听起来需要额外的步骤来更新子模块代码.理想情况下,我们希望透明.此外,我们不一定关心从父存储库的角度知道子模块中发生了什么变化; 我们只关心整个子模块的某个时间点.

git clearcase git-submodules

5
推荐指数
1
解决办法
278
查看次数

git status给我一个错误:错误的索引文件sha1签名

在我的git存储库中,我对许多文件进行了utf-8转换,但仅在.git目录下,因此未触及.git目录.在此转换之前,我创建了一个新的测试分支,但现在我不能再使用我的repo了,我无法切换回master.当我做:

git status 
Run Code Online (Sandbox Code Playgroud)

或者我得到的任何其他git命令:

error: bad index file sha1 signature 
fatal: index file corrupt 
fatal: 'git status --porcelain' failed in submodule core/kimai-mobile
Run Code Online (Sandbox Code Playgroud)

我搜索了它并找到了命令:

rm -f .git/index 
Run Code Online (Sandbox Code Playgroud)

在此之后:

git reset
Run Code Online (Sandbox Code Playgroud)

但这没有帮助.我不明白出了什么问题.然后我删除了"子模块"核心/ kimai-mobile,突然我再次使用它!

我在这个目录中有另外一个git存储库,我在其中使用我的转换销毁了另一个索引文件.我的问题是,我认为"主"存储库索引文件的意思是.

现在再次工作:)


我的问题是,为什么git会查看这个子模块,虽然我的忽略列表中包含了这个子模块的整个文件夹?

这是我的"主"git的忽略文件:

.gitignore

...
# kimai mobile
kimai-mobile
...
Run Code Online (Sandbox Code Playgroud)

git indexing git-submodules

5
推荐指数
1
解决办法
7935
查看次数

在Android Studio中访问git子模块

我刚开始为自己的项目使用源代码控制,现在我想添加Joda-Time。我想将其添加为子模块,所以我进入终端并执行:

git submodule add https://github.com/JodaOrg/joda-time.git
Run Code Online (Sandbox Code Playgroud)

并成功下载了所有文件。然后我跑了:

git submodule init
Run Code Online (Sandbox Code Playgroud)

一无所有。

git submodule status
Run Code Online (Sandbox Code Playgroud)

退货

b9fe534c7f5876eced6494a6d6c1deaf2528a579 joda-time (v2.7-17-gb9fe534)
Run Code Online (Sandbox Code Playgroud)

我检查了项目的根目录,然后看到了新的joda-time目录及其来源。但是,现在我如何访问项目中的库?我错过了一步吗?

git git-submodules android-studio

5
推荐指数
2
解决办法
8170
查看次数

如何在本地克隆子模块的'git clone --recursive'?

我习惯于将git克隆到磁盘上的主位置,然后使用本地的git克隆来减少下载和复制时间.

但是,如果我克隆一个包含子模块的项目git clone --recursive,它将--local用于主存储库,但子模块初始化仍然是通过引用URLS,这意味着我仍然要再次进行下载.

有没有办法git clone --recursive从子模块的本地副本而不是规范位置进行克隆?

git clone git-submodules

5
推荐指数
1
解决办法
555
查看次数

我可以在.gitconfig中的git clone set上使用fetch recurseSubmodules吗?

有没有办法在.gitconfig中设置git clone自动添加--recurse-submodules标志?我试着在.gitconfig中添加以下内容:

[fetch]
    recurseSubmodules = true
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

$ git clone upstream nowyprojekt2
Cloning into 'nowyprojekt2'...
done.
Run Code Online (Sandbox Code Playgroud)

我需要添加--recurse-submodule标志

$ git clone --recurse-submodule upstream nowyprojekt2
Cloning into 'nowyprojekt2'...
done.
Submodule 'euca2ools' (https://github.com/eucalyptus/euca2ools.git) registered for path 'euca2ools'
Cloning into 'euca2ools'...
remote: Counting objects: 19147, done.
remote: Total 19147 (delta 0), reused 0 (delta 0), pack-reused 19147
Receiving objects: 100% (19147/19147), 22.23 MiB | 450.00 KiB/s, done.
Resolving deltas: 100% (15556/15556), done.
Checking connectivity... done.
Submodule path 'euca2ools': checked out '12c358cd27ff652cb144de124bb5472a74145277'
Run Code Online (Sandbox Code Playgroud)

我的GIT版本:

$ git …
Run Code Online (Sandbox Code Playgroud)

git git-submodules

5
推荐指数
1
解决办法
561
查看次数

如何从其他人的Rails应用程序访问任何类/方法?

我有一个Rails项目,需要使用别人的Git存储库来处理后端工作.我把这个人的存储库带到我自己的存储库中并使其成为一个子模块(不确定这是不是正确的移动),所以我的项目目录中有一个名为'submodule'的文件夹(即它与我的app,bin,配置文件夹).

要在子模块文件夹中要求所有文件功能,我将以下内容放在application_controller.rb中(使用require_all gem):

  require_all 'submodule'
Run Code Online (Sandbox Code Playgroud)

这是我的困惑:子模块文件夹本身就是一个Rails应用程序,因此它有一个app文件夹,配置等.我希望能够在我的应用程序中使用子模块的任何邮件程序/控制器/帮助程序文件夹使用.我知道我正确地要求它们,但是如何在我的应用程序中正确引用这些类/方法?那是什么语法?

例如,子模块有一个包含DeliveryProcessor类的交付控制器,而DeliveryProcessor类有一个名为deliver的方法.如何调用DeliveryProcessor类在交付方法我的应用程序的控制?

ruby ruby-on-rails require git-submodules

5
推荐指数
0
解决办法
127
查看次数

等效于git checkout我们/他们的子模块

解决文件中的冲突时,我可以

git checkout --ours filename
Run Code Online (Sandbox Code Playgroud)

然后提交文件。这样可以解决冲突。然而,

git checkout --ours submodule
Run Code Online (Sandbox Code Playgroud)

似乎不起作用。子模块的引用提交不会更改。

git checkout --ours filename解决子模块引用中的冲突将是什么意思?

git git-merge git-submodules

5
推荐指数
1
解决办法
595
查看次数

VSTS中的GIT子模块在线?

我有一个带有git repo的VSTS项目.repo有一些子模块,这些子模块也是软件项目开发的一部分.

有没有办法在同一个VSTS项目中创建子模块?另一种选择是在子模块的VSTS项目和使用子模块的项目之间拆分开发任务,这是不理想的,因为就发展而言,两者之间存在很多重叠.

git git-submodules azure-devops

5
推荐指数
1
解决办法
4527
查看次数

并行执行"git submodule foreach"

有没有办法git submodule foreach并行执行命令,类似于--jobs 8参数的工作方式git submodule update?

例如,我们工作的项目之一涉及近200个子组件(子模块),我们大量使用该foreach命令对它们进行操作.我想加快它们的速度.

PS:如果解决方案涉及脚本,我在Windows上工作,大多数时候,使用git-bash.

git parallel-processing git-submodules

5
推荐指数
1
解决办法
650
查看次数