相关疑难解决方法(0)

如何将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万
查看次数

无法跟踪Git子模块中的文件

问题:当我没有文件时,也没有任何文件时,将文件添加./shells/smallApps/*到Git ../.git/./.git/info/exclude.gitignore

这个问题是基于这个问题没有完全解决的问题.

我跑

$git status                                                                                                                                          ~/bin
# On branch master
nothing to commit (working directory clean)
$git ls-files                                                                                                                                        ~/bin
Screen/dev/vim-open.screen
--- cut ---
Run Code Online (Sandbox Code Playgroud)

我注意到我的Git上没有"shells/smallApps/*"文件

$ls shells/smallApps/                                                                                                                                ~/bin
devTodo     extract     
                                                                                                                                             ~/bin
Run Code Online (Sandbox Code Playgroud)

我想通过运行将它们添加到我的Git中

$git add shells/smallApps/devTodo shells/smallApps/extract
fatal: Path 'shells/smallApps/devTodo' is in submodule 'shells/smallApps'
$git add .         
Run Code Online (Sandbox Code Playgroud)

我注意到由于某种原因,这些文件没有添加到我的Git中

$git status                                                                                                                                          ~/bin 
# On branch master
nothing to commit (working directory clean)
Run Code Online (Sandbox Code Playgroud)

我没有.git/info/exclude和.gitignore -files的文件.

最后警告是什么意思?

git add git-submodules

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

无法在Ubuntu上更新Git

我正在尝试在Ubuntu机器上设置Git(我正在使用运行Ubuntu 12.04的三星Chromebook).

当我输入"sudo apt-get install git"并成功安装了Git 1.79

user@ChrUbuntu:~$ git --version
git version 1.7.9.5
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚我在这里做错了什么.有什么建议?

linux git ubuntu

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

用自己的fork交换git子模块

我在我的git repo中添加了一个子模块,如下所示:

$ git submodule add git://github.com/user/some-library some-library
Run Code Online (Sandbox Code Playgroud)

我已经决定要创建一个库的分叉来做一些调整.我如何交换该子模块,以便它指向我自己的github fork呢?

git fork github git-submodules

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

删除git子模块但保留文件

我有一个git子模块,我想成为我的主项目的一部分(因为我有很多项目特定的代码将进入子模块).

所以我想删除子模块的git引用并将文件添加到我的主git存储库.

但是怎么样?

git

26
推荐指数
2
解决办法
8388
查看次数

git忽略了一个目录,它就像它不存在一样

我有一个克隆的回购.有一个目录,称之为a/b/c 曾经是它自己的仓库,即有一个/ b/c/.git /等.

现在我想要在主repo中管理文件.我不关心a/b/c中的历史,所以我删除了a/b/c中的.git目录

但问题是git status完全忽略了a/b/c.我不能git add.就好像我把路径放进了.gitignore(我还没有).

显然之前,git忽略了一个带有.git目录的子目录是有道理的,但是现在它是如何知道差异的?

除了.gitignore和.git/info/excludes之外还有其他地方可以忽略文件吗?.git/config文件中没有任何内容?

我被问到git状态的含义.不多:

/path/to/root/dir $ git status
# On branch fred
nothing to commit (working directory clean)
Run Code Online (Sandbox Code Playgroud)

git补充道.更少(没有)

/path/to/root/dir $ git add a/b/c
Run Code Online (Sandbox Code Playgroud)

git

17
推荐指数
1
解决办法
4324
查看次数

清理克隆上的git子模块的工作流程是什么?

有关如何"本地"删除子模块的有用答案 - 如何删除子模块?

但是我有问题我在几台机器上克隆了我的仓库.两个我每个月只工作一到两次.因此,当我更新那些分支时虽然不再跟踪子模块,但文件仍然在工作分支上.git/modules.在不止一次的情况下,我偶然检查了一些.在其他情况下,由于存在这些不需要的文件/目录,我的构建失败.

我想我可以保留一个要删除的东西列表 - 但这似乎不对 - 另一个人会怎么做删除,我没有git之外的信息删除什么?

那么清理克隆的建议方法是什么?

更新

对我来说似乎是最新的git --version回报git version 2.18.0(2018-09-01).

我添加了一个可重现的例子.

建立

mkdir parent
cd parent 
git init
git submodule add https://github.com/jakesgordon/javascript-tetris.git
git commit -am add

cd ..
git clone parent clone
cd clone
git submodule update --init
Run Code Online (Sandbox Code Playgroud)

现在两个目录都包含带有签出文件的子模块javascript-tetris/. .gitmodules包含子模块.

当我做

cd parent
git rm javascript-tetris
git commit -am delete
Run Code Online (Sandbox Code Playgroud)

在父目录中,目录已经javascript-tetris消失,并且.gitmodules删除了该条目.但仍有一个人口稠密的.git/modules/javascript-tetris目录.

在克隆方面:

git pull
Run Code Online (Sandbox Code Playgroud)

发出警告:warning: unable to rmdir 'javascript-tetris': …

git git-submodules

16
推荐指数
2
解决办法
233
查看次数

删除git子模块的问题

我有一个关于删除git子模块的问题.我正在使用git组织我的配置文件和vim包,将vim包作为子模块.现在我正在尝试删除一个子模块(根据这里的说明,但我没有成功.

--git submodule deinit -f vim/bundle/snipmate-snippets
Submodule work tree 'vim/bundle/snipmate-snippets' contains a .git directory
(use 'rm -rf' if you really want to remove it including all of its history)
Run Code Online (Sandbox Code Playgroud)

所以我试试rm -rf......

--git rm -rf vim/bundle/snipmate-snippets
error: the following submodule (or one of its nested submodules)
uses a .git directory:
    vim/bundle/snipmate-snippets
(use 'rm -rf' if you really want to remove it including all of its history)
Run Code Online (Sandbox Code Playgroud)

我做错了什么?显然只是rm -rf像git一样告诉我不够好,因为.gitmodules文件中的子模块条目将保留.谢谢.

git

13
推荐指数
1
解决办法
6190
查看次数

最初只需要git子模块更新吗?

我得到了git子模块(一厢情愿的想法?),我想出更具体的问题,这是一个好兆头......

我试图找到超级项目引用的子模块的哪个版本,在.gitmodules和中.git/config,但是没有提到......
场景是我正在更改其根位置(从中导入它们)的子模块,然后将它们拉入"子模块化"的位置......
除了从超级项目中提交以将这些更改合并到超级项目仓库之外,我是否还需要git update注册新的拉入式子模块提交?

基本上问题是:

git submodule update只有当我第一次克隆超级项目时,或者每次拉动子模块(来自它自己的回购)后,我才需要" "吗?

谢谢

git-submodules

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

无法从Git仓库中删除子模块

我有一个Git仓库中的子项目,我想删除但是我无法删除.在GitHub Web界面上,子模块显示为黑色(或灰色)文件夹图标,不可单击.

git repo中的子模块

该文件夹存在一些问题,即使我的本地代码在该文件夹中有文件并且我推送到我的存储库,更改也不会应用于GitHub远程.不知何故,此文件夹被忽略.我检查过它不在.gitignore文件中.

在尝试删除我使用的子项目时:

git submodule deinit submodule-name
Run Code Online (Sandbox Code Playgroud)

但它给出了错误

错误:pathspec'submodule-name'与git已知的任何文件都不匹配.你忘了'git add'吗?

这是什么问题?

git github git-submodules

11
推荐指数
2
解决办法
9053
查看次数

标签 统计

git ×9

git-submodules ×6

github ×2

add ×1

fork ×1

linux ×1

ubuntu ×1