如果我是从我的工作目录(父目录)创建初始提交,但是有带有独立签出git repos的子目录,会发生什么?
我只是做了git add .,但这使我遇到了一种奇怪的情况:嵌套Git repos的子目录没有注册为父回购的子模块。
因此:如何在初始的"git添加“之后继续进行。在具有独立签出嵌套git repos的父级工作dir中(为了获得正确的子模块)?
举个例子:
[imz@z super-existing-sub]$ ls
c sub
[imz@z super-existing-sub]$ ls -a sub/
. .. a .git
[imz@z super-existing
当我在我的存储库上运行git status时,我得到了fatal: Not a git repository: /my repo/.git/modules/docs
我已经检查过了,.git存在,并且包含具有适当权限的HEAD。我可以很好地运行其他各种命令。如果我运行git gui,它可以很好地打开,并列出几个更改过的文件,但缺少很多文件。
我猜可能是HEAD中的某种腐败,但不确定。你知道如何在不删除整个回购的情况下解决这个问题吗?
更新:我意识到我已经更改了repo目录的名称。错误中引用的目录是该目录的旧名称。因此,我当前的存储库是/new dir/.git,但错误是Not a git re
我有一个巨大的git存储库,我想在我的本地Mac OS客户机和运行在虚拟机中的“来宾”Linux客户机之间共享它。我在这两个版本上都构建了最新版本的git (1.7.12.2),并且我从Mac OS克隆了存储库。问题是,在Linux中,子模块无法识别:
$ git status
fatal: Not a git repository: /blah/android-wmon/.git/modules/core/modules/galaxynexus-cm10-kernel
fatal: 'git status --porcelain' failed in submodule co
当我运行这些步骤时:
mkdir dev
cd dev
git clone git://github.com/facebook/hhvm.git
cd hhvm
git submodule init
export CMAKE_PREFIX_PATH=`pwd`/..
export HPHP_HOME=`pwd`
cd ..
网址:
我被git submodule init卡住了,我得到了错误:Submodule 'hphp/submodules/folly' () registered for path 'hphp/submodules/folly'
我不知道这
git submodule status和git status submodule之间的区别是什么
git submodule status经常出现在几个答案中。目前,它没有给我任何输出。
git status submodule告诉我:
On branch main
Your branch is behind 'origin/main' by 8 commits, and can be fast-forwarded.
后一条命令更像是一个打字错误。现在我很惊讶它能给出一个输出。我有子模块,但没有名为submodule的文件夹。
使用以下命令检查主存储库中子模块的状态:
git submodule status
产生输出(没有关于分支的明确信息):
491e03096e2234dab9a9533da714fb6eff5dcaa7 vendor/submodule1 (v1.51.0-560-g491e030)
8bccab48338219e73c3118ad71c8c98fbd32a4be vendor/submodule2 (v1.32.0-516-g8bccab4)
是否可以在没有:的情况下检查子模块上的当前分支
cd vendor/submodule1
git status
cd ../submodule2
gi
我想从我的git项目外部运行子模块更新。对于大多数命令(例如git status),我可以给git提供--git-dir和--work-tree参数,如下所示:
git --git-dir=/path/to/root/.git --work-tree=/path/to/root status
但是,运行git --git-dir=/path/to/root/.git --work-tree=/path/to/root submodule update会得到以下结果:fatal: $program_name cannot be used without a working tree.
我知道我可
我正在尝试更新我的子模块,以便它们使用最近的提交。
当我们使用子模块时,它们应该保持在一个独立的头部状态。这很好。
$ cd myproject
$ cd otherlibrary
$ git status .
HEAD detached from 091eccc
nothing to commit, working tree clean
我在otherlibrary中做了一些工作,现在我想更新myproject,以便在otherlibrary中使用这些新提交。这意味着,我需要“更新子模块”。
这不起作用:(看到了吗?它仍然有相同的提交号)
$ cd myproject
$ cd otherl
我在删除子模块后得到了这个错误。有问题的路径不在我的.gitignore文件中,我的.git/info/exclude文件中也没有任何相关内容。我没有.gitignore_global文件。为什么git试图忽略这条路径,我如何解决这个问题?
The following path is ignored by one of your .gitignore files:
MyTest/MyTest/lib/submodules/ScreenRecorder
Use -f if you really want to add it.
这是我正在尝试执行的命令:
git submodule add htt
当我在我的项目下git status时,我看到:
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: MyApp/mylib (new commits)
mylib是一个git子模块,下面有其他文件。
我想放弃MyApp/myl
我使用gitosis来托管我的GIT存储库。
我希望阻止管理员以外的用户(由提交者的电子邮件标识)将更新推送到子模块。
我尝试通过预接收钩子来查看是否可以读取子模块更改的列表,但由于是一个纯repo,它无法读取.gitmodules。
#!/bin/bash
OLDREV=$1
NEWREV=$2
unset GIT_DIR
unset GIT_WORKING_TREE
SUBS=$(git show $NEWREV:.gitmodules | sed -n "s/^.*git@repo://p")
for submod in SUBS
do
echo $su