2013-03-06 169 views
8

我是一个使用git的新手 - 并且刚刚意识到.gitignore的更改不会针对回溯进行处理,而是“影响未来”的git add *命令等。一旦这些文件在回购 - 它们必须手动删除。如何重新启动git存储库

在这一点上 - 我想完全杀死这个回购 - 并重新开始(保存我的配置等)。

这是容易的可能或会造成重大问题?可以备份 - 然后删除.git文件夹 - 并重新开始?

此外 - 对于其他刚刚开始在git中的新手,我会建议观看此视频。它没有描述如何使用git,而是描述了git如何在内部工作 - 并且我发现它开启了眼界。它的名字是4岁以上的git。 http://blip.tv/open-source-developers-conference/git-for-ages-4-and-up-4460524

分辨率:

我要感谢大家的意见和指导。

我曾尝试删除.git目录 - 然后重新启动。我不知道如何 - 但是当我尝试开始它时 - 它完全意识到它的历史 - 并且总之重新创建自己以包括所有以前的提交和跟踪。

我离开了这一切 - 并着手重组,重组和清理。更改文件夹结构 - 删除不必要的项目,文件夹等。 - 并在过程中 - 意识到我可以做些什么来删除我不想跟踪的文件(但仍然希望它们存在于树中)。

我有效地移动每个文件夹等,当我提交这个 - git删除了移动/删除文件的跟踪。但由于.gitignore我现在有 - 它没有拿起或跟踪移动的文件夹中的文件。

我正在做的大部分工作是准备开始一个全新的git回购。在这个过程的最后阶段,我发现了我 - 我不想跟踪的大部分内容都已被有效地删除以供回购。所以发生了什么 - 并做了一些调整 - 现在一切都很好。

再次 - 谢谢。我很爱你!

+1

你为什么不喜欢的只是移除的想法来自源代码控制的文件? – niculare 2013-03-06 10:43:28

+0

有很多文件嵌套在深度文件夹中。 – JimH 2013-03-06 20:51:57

回答

6

可以备份 - 然后删除.git文件夹 - 并重新开始?

是。这就是它的全部。

一些非常奇特的设置可能在工作目录之外有.git文件夹;但除此之外,.git文件夹包含所有的信息都是git。如果你删除它,你会删除所有的历史记录,git-metadata等。

编辑:对于那些可能没有读完整个问题的人:警告:这将删除您的所有git历史记录

+0

谢谢你的帮助。我以为你可以简单地删除这个文件夹 - 但后来我看到另一篇文章指出这将是一个大问题。 – JimH 2013-03-06 20:49:28

3

处理此问题的最佳策略是使用git archive命令。这将在tar档案中导出未版本化的树。选择您的分支,你要导出和运行库里面的情况如下:

git archive master | tar -x -C ~/target/directory 

然后,您可以干净地删除您的存储库文件夹,然后解压缩归档重新开始。最后,你可以在你解压的文件夹创建一个新的版本如下:

git init 
+0

非常感谢。我会继续! – JimH 2013-03-06 20:50:08

9

我做这一切的时候。钻进工作目录,如果你在Linux或Mac做

rm -rf .git 

然后我做了

git init 
git add . 
git commit -m "first time load" 

这就是你需要

+0

感谢您的帮助。我很感激! – JimH 2013-03-06 20:48:11

+1

这不起作用 – randseed1724 2017-04-15 23:37:19

相关问题