';git add.&x27;不';行不通
我目前正在尝试为一个我已经工作了一段时间的项目设置Git。我确实记得很久以前设置Git,但由于各种原因从未使用过它。现在我想使用它,我得到了一个奇怪的问题,我相信是有关旧安装 为了启动一个新的Ubuntu操作系统,我安装了一个新的Ubuntu操作系统,这样就不会有Git安装,我复制了这个项目(Grails)。然后,我导航到该目录并运行以下命令:';git add.&x27;不';行不通,git,repository,git-add,Git,Repository,Git Add,我目前正在尝试为一个我已经工作了一段时间的项目设置Git。我确实记得很久以前设置Git,但由于各种原因从未使用过它。现在我想使用它,我得到了一个奇怪的问题,我相信是有关旧安装 为了启动一个新的Ubuntu操作系统,我安装了一个新的Ubuntu操作系统,这样就不会有Git安装,我复制了这个项目(Grails)。然后,我导航到该目录并运行以下命令: git init git remote add origin https://USERNAME@bitbucket.org/USERNAME/APPN
git init
git remote add origin https://USERNAME@bitbucket.org/USERNAME/APPNAME.git
然后我跑:
git add .
这就是我得到以下错误的原因:
fatal: Not a git repository: /home/user/workspace/App_V3/.git/modules/plugins/grails-spring-security-ui
此错误很奇怪,因为它甚至与我所在的目录不匹配,因为目录如下:
/home/user/Workspace/App_V7/
我在想,最初我可能已经在旧操作系统的App_V3文件夹中设置了Git,但不知道为什么它仍然指向该目录,因为我已经运行了下面的代码来重新初始化它:
rm -rf .git
git init
有人能帮我解决这个问题吗?因为它真的很让人沮丧
提前感谢我将所有文件一次一个地移动到一个新文件夹,然后似乎工作正常:) 感谢您的帮助而不是
git init
git remote add origin https://USERNAME@bitbucket.org/USERNAME/APPNAME.git
你应该使用
git clone origin https://USERNAME@bitbucket.org/USERNAME/APPNAME.git .
因为您希望删除现有存储库,而不是重新创建它。将存储库与子模块一起移动是有问题的
我在想,最初我可能已经在旧操作系统的App_V3文件夹中设置了Git
这就是问题的根源
重要的是最初创建存储库(或者更具体地说,引用的子模块)时的git版本
考虑一下在vendor/awesome
中有一个子模块的存储库,git在创建子模块时的行为是完全不同的
git版本<1.7.8
vendor/awesome/.git
的内容是一个文件夹-就像任何git签出一样,例如签出的文件夹结构是:
.gitmodules
.git
...
vendor/
awesome
.git
config
HEAD
index
packed-refs
...
移动这种存储库没有问题,因为任何地方都没有存储路径
git版本1.7.8或1.7.9
用“git submodule init”填充新的子模块目录时,
子模块的$GIT_DIR元信息目录是在内部创建的
$GIT_DIR/modules//superproject和引用的目录
通过gitfile机制。这是为了使切换成为可能
超级项目中具有和不具有
树中的子模块,无需重新克隆
因此,vendor/awome/.git
不是一个文件夹,而是一个包含以下内容的文件:
gitdir: /absolute/path/to/main/repo/.git/modules/vendor/awesome
总体文件夹结构为:
.gitmodules
.git
...
modules
vendor
awesome
config
HEAD
index
packed-refs
...
vendor/
awesome
.git <- a file
这是一个非常可怕的变化-但是它引入了一个问题,因为绝对路径被用于引用位置
git版本>=1.7.10
在子模块中使用绝对路径时进行了修改
包含由管理的顶级超级项目的整个目录
“git子模块”可以移动到其他位置
现在vendor/awesome/.git
如果使用此或更高版本的git生成,将包含:
gitdir: ../../.git/modules/vendor/awesome
.git/modules/vendor/awome/config
的内容指定了工作树的位置:
[core]
...
worktree = /absolute/path/to/main/repo/vendor/awesome
[core]
...
worktree = ../../../../vendor/awesome
同样,将这种存储库作为相对于主存储库的路径移动也没有问题
移动存储库
使用旧版本或新版本的git-您很好
如果您不幸处理了在1.7.8或1.7.9中创建的存储库(从问题中的证据来看似乎是这样的),并移动了存储库,则有:
当你说你复制了这个项目时,它是否已经在git版本控制下了?如果存在
.git
文件夹,您可以在运行git init之前清除它。您所说的版本控制是什么意思?几年前我在另一个文件夹中安装了GIT,然后将此项目复制到一个新文件夹中。如上所示,我已经运行了“rmrf.git”,然后又运行了git init,但仍然遇到同样的问题。我这样做这是一个目录结构的问题,因为这是一个新的操作系统。即使当前工作目录中的.git
被删除,git仍将在放弃之前在其他几个地方继续寻找它。如果在别处找到.git
,它将尝试使用它。查看此列表,查看文件系统中检查和删除过时的.git
的位置列表。在应用程序V7
中运行git rev parse--git dir
时,输出是什么`运行以下命令时会发生什么情况?git status
同时查找文件夹.git
,因为该文件夹所在的位置表示新git report的根目录我有git版本2.8,但我的子模块在版本1.7格式中:/是否有某种方法可以自动迁移到新格式?可能通过阅读答案,虽然您不需要迁移到新格式,但问题是我将存储库复制到了另一个目录,而且,由于它没有“迁移”到新格式,子模块失败,我不得不手动更新它们。真的很麻烦,不是所有的。所以我想知道tere是否是一种“迁移”到新格式的简单方法,这样我就可以将它发送给我的团队。。。