不知怎么的,大约一个月前,当我对我的最新项目执行git init
时,我在比项目根目录更高的目录中运行了该命令。
因此,我的存储库位于./project
目录中,而不是./project/my-new-project
目录中。我不知道为什么我之前没有意识到这个问题,但直到现在我才开始寻找.git目录。
有没有一种方法,在不终止我的项目的情况下,将存储库移动到适当的目录,然后告诉git该项目的新基础是什么?仅仅移动目录是行不通的。Git认为所有文件都已删除。
发布于 2009-12-17 06:24:22
除非您已经创建了一些要保存的历史记录,否则最简单的事情可能就是删除.git
子目录,并在正确的目录中重做初始化。
如果你使用git来解决这个问题,那么任何解决方案都必然会留下许多“将此文件移至此处”的历史记录条目,这些条目实际上并没有更改,但您在创建时修复了一个错误。最好是正确地创建它。
发布于 2010-07-14 23:30:27
我有相反的问题-不得不将git根目录转移到父目录(从project/src到project),这让我非常惊讶,下面的方法起作用了!
src$ mv .git ../
src$ cd ..
project$ git add src
project$ git commit -a
git巧妙地检测到所有新文件都被重命名为旧文件的版本,并且没有丢失任何历史记录
你可以尝试类似的东西。在提交之前,移动.git文件夹并再次添加文件
发布于 2013-07-13 02:56:56
这对我很有效,并且保存了我所有的历史。从错误的根文件夹(意外初始化存储库的父文件夹):
移动文件夹:
mv .git thecorrectfolder/
重新初始化git存储库:
cd thecorrectfolder/
git init
重新添加所有文件,提交并推送:
git add .
git commit -am 'fixing things'
git push origin master
完成了!给自己拿瓶啤酒。
当您在重新初始化之后提交git代码库时,您将得到一堆如下所示的输出:
rename {ethanode/coffee => coffee}/app.coffee (100%)
换句话说,您从父文件夹中引用的所有引用都将重命名为使用正确的文件夹。
https://stackoverflow.com/questions/1918111
复制相似问题