13

我是 git 的新手——刚刚意识到对 .gitignore 的更改不会“追溯地”针对 repo 进行处理——而是会影响未来的 'git add *' 命令等。一旦文件在 repo 中——它们必须被手动删除。

在这一点上——我想完全杀死这个 repo——然后重新开始(保存我的配置等)。

这很容易实现还是会导致重大问题?可以备份——然后删除 .git 文件夹——然后重新开始吗?

另外——对于刚开始使用 git 的其他新手,我建议观看此视频。它描述的不是如何使用 git——而是 git 如何在内部工作——我发现它大开眼界。它的标题是 git 4 岁及以上。 http://blip.tv/open-source-developers-conference/git-for-ages-4-and-up-4460524

解析度:

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

我确实尝试删除 .git 目录 - 并重新启动。我不确定如何——但当我尝试重新开始时——它开始时完全了解它的历史——简而言之,它重新创建了自己以包含所有以前的提交和跟踪。

我不理会这件事——着手进行重组、重组和清理。更改文件夹结构 - 删除不必要的项目、文件夹等。 - 并在此过程中 - 意识到我可以做些什么来删除我不想跟踪的文件(但仍然希望它们出现在树中)。

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

我所做的大部分工作都是为开始一个全新的 git 存储库做准备。在这个过程的后期,我并没有意识到——我不想跟踪的大部分内容已经被有效地删除以用于回购。所以采取了发生的事情 - 并进行了更多调整 - 现在一切都很好。

再一次 - 谢谢你。我爱吉特!

4

3 回答 3

17

我一直这样做。进入工作目录,如果你在 linux 或 mac 上做一个

rm -rf .git

然后我做一个

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

这就是你所需要的

于 2013-03-06T12:57:09.003 回答
15

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

是的。这就是它的全部。

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

如果你有遥控器,它们的链接就会丢失,因为它存储在同一个 .git 文件夹中。远程本身,比如说你的 Gitlab 服务器,显然没有消失。因此,如果您在干净的环境中重新添加相同的遥控器,它将导致历史重新出现,这可能会导致合并冲突。

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

于 2013-03-06T10:43:00.967 回答
4

处理此问题的最佳策略是使用该git archive命令。这将在 tar 存档中导出树的未版本化版本。选择要导出的分支并在存储库中运行以下命令:

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

然后,您可以干净地删除您的存储库文件夹,然后提取您的存档以重新开始。最后,您可以在提取的文件夹中创建一个新的存储库,如下所示:

git init
于 2013-03-06T10:46:20.457 回答