标签: git-submodules

git子模块更新与其他用户

我在我的机器上以用户A身份登录,但我的回购可以通过我从中提取的服务器上的用户名B访问.该.gitmodules文件有url = ssh://domain.com/abc/def.git.

我该如何配置git以使用用户名B而不是A git submodule update

git username git-config git-submodules

23
推荐指数
2
解决办法
2万
查看次数

git:如何从项目中分离库?filter-branch,subtree?

所以,我有一个更大的(闭源)项目,并且在这个项目的上下文中创建了一个在其他地方也可以使用的库,我想.

我现在想要在自己的项目中拆分库,它可以作为github或类似的开源.当然,图书馆(及其历史)应该不包含我们项目的痕迹.

git-subtree在这里似乎是一个解决方案,但它并不完全适合.

我的目录布局是这样的(因为它是一个Java项目):

  • 击剑比赛 (git workdir)
    • SRC
        • fencing_game
          • 运输 (我的图书馆)
            • 协议 (图书馆的一部分)
            • fencing (与库连接的主项目的一部分)
            • 客户端(与库连接的主项目的一部分)
            • server (与库连接的主项目的一部分)
          • 客户(主要项目的一部分)
          • 服务器(主项目的一部分)
          • ...... (主要项目的一部分)
    • 其他文件和目录(构建系统,网站等 - 主要项目的一部分)

拆分后,我希望库的目录布局如下所示(包括直接在粗体目录中的任何文件):

  • 我的图书馆(名字待定)
    • SRC
        • fencing_game
          • 运输 (我的图书馆)
            • 协议 (图书馆的一部分)

历史记录还应该只包含主项目历史中涉及存储库这一部分的部分.

第一眼看到了我git-subtree split --prefix=src/de/fencing_ame/transport,但这会

  1. 给我一棵树根transport(不会编译)和
  2. 包括transport/client,transport/servertransport/fencing目录.

第一点可以通过git subtree add --prefix=src/de/fencing_ame/transport <commit>在接收端使用来缓解,但我不认为git-subtree可以对导出这些子目录做很多事情.(这个想法真的是只能在这里分享完整的树).

我必须在git filter-branch这里使用吗?

拆分后,我希望能够导入回库在我的主要项目中,无论是使用Git树或混帐子模块,在一个单独的子目录,而不是它现在是.我想象这样的布局

  • 击剑比赛 (git workdir)
    • SRC
        • fencing_game
          • 运输 (空)
            • fencing (与库连接的主项目的一部分)
            • 客户端 …

git git-submodules git-filter-branch git-subtree

23
推荐指数
1
解决办法
5501
查看次数

如何撤消git submodule update

我不小心检查了错误的子模块更新:(作为更大提交的一部分)

-Subproject commit 025ffc
+ Subproject commit f59250

它已被推到遥控器..

如何撤消此更新?

git undo git-submodules

23
推荐指数
1
解决办法
8623
查看次数

远程裸机上的Git子模块

我已经设置了我的环境,所以我可以推送到远程裸存储库,我使用这些命令来设置远程存储库:

$ mkdir ~/website.git && cd ~/website.git
$ git init --bare
Run Code Online (Sandbox Code Playgroud)

$ cat > hooks/post-receive

#!/bin/sh
GIT_WORK_TREE=/var/www/website git checkout -f

$ chmod +x hooks/post-receive
Run Code Online (Sandbox Code Playgroud)

在我的本地环境中:

$ git remote add web ssh://website.com/home/website.git
$ git push web +master:refs/heads/master
Run Code Online (Sandbox Code Playgroud)

现在我可以部署到这个远程使用git push web,一切都很好..

问题:子模块

我的项目中有一些子模块没有在远程存储库中初始化/更新...我无法git submodule update在裸机上运行,因为它是裸的,我不能在/var/www/website文件夹上运行它,因为它只是一个副本的文件而不是git repo.

git git-submodules git-bare

23
推荐指数
3
解决办法
9004
查看次数

如何公开使用子模块,但是在本地使用符号链接到单个克隆?

我有我的第一个Git Submodule体验.

我有一些项目依赖于同一个子项目.我保持这些项目同步,所以我使用"子模块分支"功能(例如git submodule add -b master [URL]).

虽然我希望公共GitHub存储库传达子模块关系,但在我自己的工作流程中,我真的只想在我的磁盘上有一个共享代码库的克隆.我想我可以设置子模块,然后用符号链接做一个切换器.但是当我这样做时,我得到了这个:

On branch master
Changes not staged for commit:
 (use "git add <file>..." to update what will be committed)
 (use "git checkout -- <file>..." to discard changes in working directory)

    typechange: draem
Run Code Online (Sandbox Code Playgroud)

所以Git显然认为它是一个符号链接,而不是跟随目录.

是否有任何工作流程,我似乎可以使用子模块,但我的本地文件系统上只有一个克隆?

git symlink git-submodules

23
推荐指数
2
解决办法
3378
查看次数

Jenkins:用Git检索子模块

目前我一直在试图从Jenkins中检索存储库的子模块.我的配置很好,我可以拉没有任何子模块的存储库就好了.

我还可以使用子模块来获取repo的主要组件(在存储库名称中都使用SSH进行身份验证).只有当我必须拉动子模块组件时才会出现问题.我正在运行最新版本的Jenkins,我在底部添加了一个用于"高级子模块行为"的部分.我在这里选择了"递归更新子模块"并多次运行构建无济于事.

当我尝试使用shell命令在底部添加额外的构建步骤时,存储库的更新也不起作用.当我在终端中的jenkins之外尝试这些命令时,这很好用.我总是在Jenkins得到的问题是:

FATAL: Command "git submodule update" returned status code 1:

stdout: 

stderr: Cloning into 'thisismysubmodule'...
fatal: Authentication failed for 'https://git.thisismyrepo.com/scm/ap/thisismysubmodule.git/'
Run Code Online (Sandbox Code Playgroud)

我发现了这个问题:https://issues.jenkins-ci.org/browse/JENKINS-20941但由于安全问题,我无法在底部使用建议的解决方案.这里有没有人有这个问题的经验或可能的解决方案?

git authentication git-submodules jenkins

23
推荐指数
4
解决办法
2万
查看次数

git子模块究竟是如何工作的

.gitmodule文件仅指定模块存储库URL.怎么git submodule知道要下载哪个版本?它似乎总是检查出最新版本.那么,开发人员如何确保主项目和子模块之间的兼容性?

git git-submodules

22
推荐指数
1
解决办法
1万
查看次数

添加无法从索引中删除的子模块

我正在尝试添加一个已经存在的子模块(不同的git远程存储库).由于我没有在如何正确地进行搜索之前进行搜索,我认为我已经弄乱了我的存储库,我需要一些帮助才能再次修复它.

我已经删除了.gitmodules和.git/config中有关我要删除的子模块的所有相关部分.我还验证了.git /目录中没有modules目录.

但是,当我运行该命令时git rm --cached path_to_submodule,将显示以下消息:

fatal: pathspec 'path_to_submodule' did not match any files

由于上一个命令失败,当我尝试再次使用新定义添加相同的子模块时,运行该命令git submodule add gituser@host:repo.git,这是显示的消息:

'repo' already exists in the index

git git-submodules

22
推荐指数
2
解决办法
2万
查看次数

如何使用嵌套的git子模块创建CocoaPod?

我正在尝试使用嵌套的git子模块创建一个CocoaPod.我可以创建pod,但是,我无法完全安装它.

当我运行时,pod install --verbose我可以看到git submodule update --init正在运行而不是git submodule update --init --recursive没有拉动嵌套的子模块.

CocoaPods是否支持嵌套子模块,或者不支持?我已经在网上搜索潜在的潜在客户,但找不到任何东西!

我还应该提到我lint传递pod lib lint但不pod spec lint. pod spec lint抱怨它无法在嵌套子模块中找到头文件.我不确定这是否与上述问题有关.

(另请注意,我正在研究的这个特定的Pod只是一个概念证明.我将创建一个更复杂的Pod,它依赖于socket.IO-objc.不幸的是socket.IO-objc不能用作Pod ,并依赖于SocketRocket作为子模块.)

这是我的PodSpec:

Pod::Spec.new do |s|
  s.name             = "DebugTools"
  s.version          = "0.1.0"
  s.summary          = "Awesome tools for debugging iOS apps."
  s.homepage         = "https://github.com/robertcrabtree/DebugTools"
  s.license          = 'MIT'
  s.author           = { "Robert Crabtree" => "me@gmail.com" }
  s.source           = { :git => "https://github.com/robertcrabtree/DebugTools.git", :tag => s.version.to_s, :submodules => true }

  s.platform …
Run Code Online (Sandbox Code Playgroud)

git git-submodules cocoapods

22
推荐指数
1
解决办法
532
查看次数

如何添加git repo作为自身的子模块?(或者:如何以编程方式生成GitHub页面?)

我想开始在我的项目网站上使用GitHub Pages.这只需要gh-pages在repo中命名的分支(子树),并提供其内容.问题是网站的一部分(手动,更改日志,下载页面......)是由构建系统自动生成的,所以我想找到gh-pages在主要仓库保持打开时将这些更改提交到分支的最佳方法master(或任何地方).

为了提交gh-pages分支,我可以编写一个脚本,将repo克隆到一个临时目录中,进行修改,提交它们,然后将它们推回到主repo.但这听起来像一个容易出错的过程,所以我希望有一个更简单的方法.

一位朋友建议我可以将gh-pages分支作为子模块添加到主存储库中.我做了一个小实验,但它不太有效:

$ git init main
Initialized empty Git repository in /tmp/main/.git/
$ cd main
$ touch main.txt
$ git add .
$ git commit -m'Initial commit in main branch.'
[master (root-commit) 1c52a4e] Initial commit in main branch.
 0 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 main.txt
$ git symbolic-ref HEAD refs/heads/gh-pages
$ rm .git/index
$ git clean -fdx
Removing main.txt
$ touch index.html …
Run Code Online (Sandbox Code Playgroud)

git github git-submodules

21
推荐指数
2
解决办法
4228
查看次数