如何重启git存储库

问题描述 投票:10回答:3

我是git的新手 - 并且刚刚意识到.gitignore的变化不会对“repactively”的repo进行处理 - 而是影响未来的'git add *'命令等。一旦文件在回购中 - 必须手动删除它们。

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

这很容易,还是会引起重大问题?可以备份 - 然后删除.git文件夹 - 并重新开始?

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

解析度:

我要感谢大家的意见和建议。

我确实尝试删除.git目录 - 并重新启动。我不确定如何 - 但是当我确实试图重新开始时 - 它开始时充分意识到它的历史 - 简而言之,它重新创建了包含所有先前的提交和跟踪。

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

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

我正在做的很多事情是准备开始一个全新的git repo。在这个过程的后期我没有意识到 - 我不想跟踪的大部分内容已被有效地删除了回购。所以采取了已经发生的事情 - 并做了一些调整 - 现在一切都很好。

再一次 - 谢谢你。我很喜欢git!

git github github-for-windows
3个回答
12
投票

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

是。这就是它的全部。

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

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

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


14
投票

我一直这样做。进入工作目录,如果你在Linux或Mac上做了

rm -rf .git

然后我做了

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

这就是你所需要的一切


4
投票

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

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

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

git init
© www.soinside.com 2019 - 2024. All rights reserved.