我有一个子模块的项目 lib/three20
我的.gitmodule
文件看起来像这样:
[submodule "lib/three20"]
path = lib/three20
url = git://github.com/facebook/three20.git
Run Code Online (Sandbox Code Playgroud)
我过去克隆过这个没有错误,(git submodule init
接下来是a git submodule update
)并且它已经工作了一段时间.
我试图将其克隆到一台新机器,现在我收到此错误git submodule init
:
No submodule mapping found in .gitmodules for path 'Classes/Support/Three20'
Run Code Online (Sandbox Code Playgroud)
该路径只是Xcode中的一个空文件夹,用于存放其他目录中的项目.它不是.gitmodules
文件的一部分,所以我看不到它从哪里获得这条路径.
有任何想法吗?
我有一个项目,我有兴趣将部分分解为开源.我已经在"main/one","main/two","main/three"中设置了一个"main"git存储库(例如,在"main"目录中)和子存储库.我认为通过进入"主要"并做
git add one
git add two
git add three
Run Code Online (Sandbox Code Playgroud)
(注意缺少尾部斜杠),我会设置子模块和子存储库,并且很好.
但是,正如Git中所述 - 如何跟踪未跟踪的内容?,这只会创建gitlinks而不是真正的子模块.
不幸的是,这个答案没有用,因为它假定在其他地方有"主要/一个","主要/两个"和"主要/三个" 的"主"存储库.我希望这些子仓库成为主存储库.我正在考虑假子模块(根据Git假子模块),但这对于克隆来说并不是特别理想的情况.
还有其他建议吗?
我已经将我的一个库的git子模块克隆到我正在进行的项目中.问题是,在克隆之后,我需要更改克隆子模块中的一些行,但我不想将这些更改推送到原始存储库中.
我希望这些更改留在超级项目中.这可能吗?我怎样才能做到这一点?
编辑:正如@GoZoner所说,基本上是:
然后,当我在另一台计算机中克隆超级项目时(直到第4步),我希望在超级项目中保存这些更改.
我的某个存储库中的"src"文件夹显示为灰色(并且不可单击):
在推送到GitHub之前我采取了以下步骤:
git add .
git commit -m "comment"
git remote add origin url
git push -u origin master
"src"文件夹显示在GitHub上,但无法打开.我能做什么?
我们已经将一个子目录S变成了一个单独的仓库,并将其重新添加为分支B中的子模块.现在,当我想切换回原始分支A时,子目录被检入原始仓库,git抱怨来自子模块的东西是未跟踪的,必须先将其移走.我们可以切换回A,而无需手动拖动S并将它移回B中吗?
更新:下面的评论表明它可能是旧分支的缺陷,并且git不愿意在这里做一件聪明的事情.是这样的,在主回购中使用S的原始分支有什么样的变基(如果有的话)可以让它在任何时候与子模块化版本共存并且可以结账吗?
目标是提交一个git分支.分支的"git status"输出为:
On branch zeromq_new
Your branch is up to date with 'origin/zeromq'.
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)
(commit or discard the untracked or modified content in submodules)
modified: log4cplus (modified content, untracked content)
modified: ../lib/notification/cppzmq (modified content)
Run Code Online (Sandbox Code Playgroud)
目录结构如下所示:
HySecureGateway
???fes
? ???log4cplus
? ???.git
? ???.gitattributes
? ???.gitignore
? ???.gitmodules
? ???catch
? ? ???.git
? ? ???.gitattributes …
Run Code Online (Sandbox Code Playgroud) 我有一个文件,在显示出来git status
的"Changed but not updated"
名单为(modified content, untracked content)
,并且其状态,当我做不改变git add
就可以了.
我想知道是否有一个命令会给我更多的诊断信息.该-v
选项没有任何意义.
我认为这个问题已经在这个问题下讨论过:
但是我仍然无法将一些文件夹添加到 git 存储库,我需要帮助。
$ git status
...
# modified: folder_to_add1 (modified content, untracked content)
# modified: folder_to_add2 (modified content, untracked content)
Run Code Online (Sandbox Code Playgroud)
这些文件夹原本属于另一个git存储库,所以我进入这些文件夹并删除了里面的.git文件夹。
然后我跑了:
$ git add folder_to_add1
$ git add folder_to_add2
$ git status
# On branch master
# Changes not staged for commit:
# (use "git add/rm <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
# (commit or discard the untracked or modified content in submodules) …
Run Code Online (Sandbox Code Playgroud)