标签: git-submodules

一个目录中有两个git存储库?

是否可以在一个目录中拥有2个git存储库?我想不会,但我想我会问.基本上,我想检查我的主目录配置文件(例如.emacs),它应该在我工作的所有机器上是通用的,但是有本地文件的第二个存储库(例如.emacs.local),其中包含机器特定的配置.我能想到的唯一方法是将本地配置放在子目录中,并忽略主git存储库中的子目录.还有其他想法吗?

git git-submodules git-subrepo

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

如何将git补丁从一个存储库应用到另一个存储库?

我有两个存储库,一个是库的主要仓库,另一个是使用该库的项目.

如果我修复了subservient项目,我想要一个简单的方法将该补丁应用到上游.

每个存储库中文件的位置都不同.

  • 主要回购: www.playdar.org/static/playdar.js
  • 项目: playlick.com/lib/playdar.js

我尝试git format-patch -- lib/playdar.js在playlick项目上使用,然后git am在主playdar repo上,但补丁文件中的不同文件位置引发了错误.

有没有一种简单的方法可以将给定文件中给定提交的补丁应用到其他地方的另一个任意文件?

对于奖励积分,如果您要应用补丁的文件不在git存储库中,该怎么办?

git patch git-submodules git-patch

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

Git子模块的替代品?

我觉得使用Git子模块对于我的开发工作流程来说有点麻烦.我听说过Git子树和Gitslave.

  • 是否有更多工具用于多个存储库项目以及它们如何比较?
  • 这些工具可以在Windows上运行吗?

git-submodules git-subtree git-slave git-repo git-subrepo

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

Git子模块在Jenkins构建中没有更新

我在Jenkins的一个项目中有一个子模块.我已启用高级设置以递归更新子模块.

当我运行构建时,我看到工作区有子模块中的文件.问题是,它似乎是子模块的第一次修订.当我推送更改(在GitHub上托管的存储库)时,Jenkins似乎不更新子模块以获得正确的更改.有没有人见过这个?

git git-submodules jenkins

74
推荐指数
7
解决办法
6万
查看次数

忽略git子模块的新提交

背景

在Linux上使用Git 1.8.1.1.存储库如下所示:

master
  book
Run Code Online (Sandbox Code Playgroud)

子模块创建如下:

$ cd /path/to/master
$ git submodule add https://user@bitbucket.org/user/repo.git book
Run Code Online (Sandbox Code Playgroud)

book子模块是干净的:

$ cd /path/to/master/book/
$ git status
# On branch master
nothing to commit, working directory clean
Run Code Online (Sandbox Code Playgroud)

问题

另一方面,主人显示书子模块有"新提交":

$ cd /path/to/master/
$ git status
# 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)
#
#       modified:   book (new …
Run Code Online (Sandbox Code Playgroud)

git ignore status git-submodules

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

为什么git submodule在git checkout上不会自动更新?

当使用git checkout切换分支时,我会假设您大多数时候都想要更新子模块.

  • 在什么情况下你想要的切换后更新子模块?
  • 如果这是由git checkout自动完成会破坏什么?

更新了示例:

  • 分支A的子模块S为3852f1
  • 分支B在fd72d7处具有子模块S.

在分支A上,git checkout B将导致分支B的工作副本,子模块S在3852f1(具有修改的S).git submodule update将在fd72d7结帐S.

git git-submodules

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

如何从git子模块中仅克隆文件夹?

我正在尝试从外部github仓库获取一个文件夹,以便在我的项目中使用.

我希望我的项目设置如下:

-my_project
    -submodule
        -code.py
    -MY_README
    -.git
Run Code Online (Sandbox Code Playgroud)

我有一个名为some-submodule的远程repo,结构如下:

-submodule
    -code.py
-README
-.gitignore
Run Code Online (Sandbox Code Playgroud)

所以我只想将子模块文件夹添加到我的项目中.

但是之后我最终得到了这个

git submodule add http://github.com/user/submodule.git submodule

-my_project
    -submodule
        -submodule
            -code.py
        -README
        -.gitignore
    -MY_README
    -.gitignore
Run Code Online (Sandbox Code Playgroud)

我是git的新手所以我真的不知道是否可以使用git.如果它有一些帮助我在Windows上使用msysgit.

那么,无论如何我可以从公共仓库中获得一个干净的子模块文件夹吗?

如果你对我正在尝试做的事情感到好奇,我试图直接从他们的repos这些django插件1 2中将它们添加到我的项目中.

git git-submodules

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

从.gitmodules恢复git子模块

我有一个文件夹,这是一个git repo.它包含一些文件和.gitmodules文件.现在,当我这样做git init,然后git submodule init,后者命令的输出是什么.我如何帮助git查看.gitmodules文件中定义的子模块,而无需git submodule add再次手动运行?

更新:这是我的.gitmodules文件:

[submodule "vim-pathogen"]
    path = vim-pathogen
    url = git://github.com/tpope/vim-pathogen.git
[submodule "bundle/python-mode"]
    path = bundle/python-mode
    url = git://github.com/klen/python-mode.git
[submodule "bundle/vim-fugitive"]
    path = bundle/vim-fugitive
    url = git://github.com/tpope/vim-fugitive.git
[submodule "bundle/ctrlp.vim"]
    path = bundle/ctrlp.vim
    url = git://github.com/kien/ctrlp.vim.git
[submodule "bundle/vim-tomorrow-theme"]
    path = bundle/vim-tomorrow-theme
    url = git://github.com/chriskempson/vim-tomorrow-theme.git
Run Code Online (Sandbox Code Playgroud)

这是这个目录的清单:

drwxr-xr-x  4 evgeniuz 100 4096 ????  29 12:06 .
drwx------ 60 evgeniuz 100 4096 ????  29 11:43 ..
drwxr-xr-x  2 evgeniuz 100 4096 ????  29 …
Run Code Online (Sandbox Code Playgroud)

git git-submodules

66
推荐指数
4
解决办法
3万
查看次数

如何将Git中的文件添加到以前的子模块的路径中?

我有一个项目,用于在路径中包含子模块mysubmodule.我从源代码(1.8.3-rc2)安装了最新的Git并运行git submodule deinit mysubmodule.然后我删除了.gitmodules文件并提交了更改.我还.gitmysubmodule文件夹中删除了该目录.

我现在想mysubmodule直接将文件提交到我的仓库,但是git说没有变化.如果我输入git add mysubmodule它什么都不做.如果我输入git add mysubmodule/file.txt它说fatal: Path 'mysubmodule/file.txt' is in submodule 'mysubmodule'

我还发现,如果您查看一个新版本的repo,它会创建一个mysubmodule目录,尽管没有.gitmodules文件.跑步git submodule init会给你一个No submodule mapping found in .gitmodules for path 'mysubmodule'错误.

我该如何解决?

git git-submodules

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

在GitHub上使用别人的repo作为Git子模块

我试图找出是否可以使用其他人的存储库(或存储库的分支)作为您自己的Git存储库中的子模块.关于github本身的文档要么丢失了,要么我没有使用正确的术语来查找它.如果这不是将公共存储库作为git项目中的共享库包含的首选方式,那么建议作为替代最佳实践将受到赞赏.

git version-control github repository git-submodules

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