标签: git-submodules

Git Submodule文件在移动到不同的Mac时在XCode中显示红色

以下是我的问题的详细信息:

我有一个目录结构,看起来像:

在此输入图像描述

哪里ios-src是我所有的项目和源文件,ios-libs是我所有的git子模块住的地方.

当我将项目克隆到另一台机器时,ios-libs目录中的所有文件在XCode(v4.3.2)中显示为红色(或缺失),但文件存在于磁盘上.

如果我从XCode中删除文件并重新添加它们,它不会解决问题,它们仍然是红色的,项目无法编译.

这些目录都标记为Relative to Group.

如果我在检查器中选择文件,我会得到:

在此输入图像描述

这揭示了错误的相对路径.如果我选择浏览按钮(在路径右侧)并更正它,我会得到正确的相对路径:

在此输入图像描述

修复它直到我回到原始(我的家)机器.此外,如果我将ios-lib目录移动到它下面ios-src来解决问题,但这是一种解决方法,我想知道解决方案.

似乎我的家用电脑上有一些设置错误,因为它似乎只是在我在那里创建项目时发生的.如果我在任何一台其他计算机上创建项目,那么这些项目就可以在我的一台机器上工作,包括我的家用机器.它们都运行Lion和相同的XCode版本.

我非常感谢任何关于我能解决这个问题的想法.我花了很多时间试图弄明白无济于事.

git xcode git-submodules

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

如何在所有提交中更新子模块URL

用例是我必须将某些存储库移动到新服务器.所以这些存储库得到了一个新的URL.
引用这些子模块的父项目需要使用子模块的新URL进行更新.
我想做以下事情.

  1. 更新.gitmodules文件
  2. git子模块同步
  3. git子模块更新
  4. 提交和推送

但是,由于先前的提交具有.gitmodule的早期版本,如果我签出父项目的先前提交 - 它不会查找旧服务器吗?


为了确保可重复性,我们需要让所有旧提交都能正常工作.有没有想过绕过这个?

git git-submodules

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

git submodule功能与兄弟姐妹?

我有一个由库和各种应用程序组成的项目:

foo/
foolib/
bar/
baz/
qux/foo/
Run Code Online (Sandbox Code Playgroud)

所有应用程序都链接到foolib,一个静态库.

我希望git在foo上提交记录foolib所在位置的SHA1 ID ,以及foo上的git状态,以报告foolib中是否存在未提交的更改.

但是,我不想让foolib将其副本作为每个应用程序的子目录.除了臃肿之外,如果不提交更改,这将失去在多个应用程序中尝试对foolib进行一些更改的能力.

我已经尝试制作一个指向../foolib的.gitmodules文件,但它似乎被git status完全忽略了.我也尝试在foo中使用foolib作为软链接,但是git似乎将软链接视为文件,而不是关注链接.

我想要的是什么,或者您有任何其他工作流程解决方案?

在我的公共存储库中,结构是相同的,并且每个应用程序(和foolib)都是从公众单独克隆的.

git git-submodules

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

具有相同GIT子模块的多个Android项目

我最近想submodules从GIT我的Android项目中采用,但偶然发现了一些问题.

背景故事

我有多个项目,但许多项目使用相同的外部库(Android库项目),以使GIT更清洁,并使每个项目的GIT包含我为Android库项目使用GIT子模块所需的所有材料.这部分工作正常我将库作为项目的子模块包含在内.

问题

但Android使用这些库项目,基本上是一个常规项目,它被添加到项目中,我只能在Eclipse中添加一次相同的项目.因此,如果我需要一次处理多个项目,我必须使用Eclipse/workspace的多个实例,而不是以常规方式使用Eclipse.

有没有办法在eclipse中只有一个我的库项目实例,同时所有项目都引用它们各自的库?或任何其他建议我应该如何处理这个?

非常感谢任何帮助

eclipse git android git-submodules

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

如何在github上构建依赖项目?

我最近把我的一些项目放在github上,让它们成为开源的,但是我无法理解如何正确地构建项目.

我有一个Core项目和另一个依赖于Core项目的项目(还有更多).但是,当用户抓住其中一个项目的副本时,他们会抱怨它缺少Core项目,我必须告诉他们它存在于一个单独的存储库中.

我知道必须有更好的方法来做到这一点.我已经读过关于git子模块但我还没有真正理解它们.

我的问题是,是否有任何易于学习的教程或如何构建我的项目的示例?我正在使用Windows,TortoiseGit,我的项目是在C#中.

git github git-submodules

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

用git-flow更新子模块

在使用git-flow模型使用git进行发行时,我将存储库切换为指向master,tag中的最新提交,然后从tag中进行构建。好的做法是将所有存储库子模块的更改合并到master中,并使其指向master(即master中的最新提交),还是将所有子模块的提交保持不变就足够了吗?

git git-submodules git-flow

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

git子模块更新“ no-fetch”

当我发布子模块更新并包含“ --no-fetch”时,如下所示:

git submodule update --remote --no-fetch
Run Code Online (Sandbox Code Playgroud)

该文档指出:

为了确保当前跟踪分支状态,在计算SHA-1之前,update --remote将获取子模块的远程存储库。如果您不想获取,则应使用子模块更新--remote --no-fetch。

我对“ --no-fetch”部分有些困惑。如果我在没有更新的情况下致电更新:

git submodule update --remote
Run Code Online (Sandbox Code Playgroud)

我知道将不会执行提取-但这也意味着我不能保证“ 当前跟踪分支状态 ”吗?这到底是什么意思呢?

在哪种情况下,我不希望保证当前的跟踪分支状态?

git git-submodules

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

如何在Git子模块中使用SSH而不是HTTP?

为什么人们有这个问题?

$ git clone --recursive git@github.com:acani/Chats.git克隆到'聊天'...权限被拒绝(公钥).致命:无法从远程存储库读取.

请确保您具有正确的访问权限并且存储库存在.

https://github.com/acani/Chats/issues/53#issuecomment-118014684

我已经阅读了一些答案,说要将子模块URL从SSH更改为HTTP,但为什么我必须这样做.我不想那样做.我想保留SSH,这样如果我想推送,我就不必在终端输入我的用户名和密码.每个人都可以很好地克隆SSH URL,那么他们为什么不能将它作为子模块递归克隆呢?

git ssh github git-clone git-submodules

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

存储微服务的子模块,但仍使用分叉

我在这里难过.很多这已经到位,它只是我无法弄清楚的包装.

我们有一个微服务架构,有许多独立的存储库.我们使用Docker和Docker Compose来构建和运行开发环境,它的工作非常精彩.

我的问题是如何打包主要的存储库集合.所以,如果我有一个文件夹结构,如:

\
    service1
        .git
        Dockerfile
    service2 
        .git
        Dockerfile
    service3
        .git
        Dockerfile
    docker-compose.yml
    README.md
Run Code Online (Sandbox Code Playgroud)

...其中service1,service2,service3各自都是自己的git存储库.

我首先想到的是使用git子模块,它会工作,但是我们执行政策,要求开发商的工作,而不是关闭主库的库叉由于持续集成的约束和代码审查.我对使用git子模块一点也不感兴趣,甚至在我想到这个警告之前,所以替代解决方案会更受欢迎.

目前我只能想写脚本来存储存储库列表; 为每个运行一个查询,看看登录的开发人员是否有每个分支,如果没有,则创建一个,然后进入主文件夹; 然后启动docker-compose.这似乎是一个可怕的解决方案,足以让我可能只需要编写文档来告诉开发人员如何手动执行此过程...

思考?

谢谢你的时间 :)

git git-submodules docker microservices docker-compose

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

是否可以在不创建fork的情况下更改子模块中的少量文件?

我正在创建cocos2d-x游戏并包含上游cocos fom git(它包括一些关键的修复和功能).但是,使用SDKBOX需要修补一些cocos文件(在子模块中).

是否可以将这些文件(甚至更好的补丁)包含到主存储库中?当然,可以分叉cocos2d-x存储库并在那里修补它们,但它使更新更加复杂(创建拉取请求并首先合并它).

git git-submodules

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