如何从从 git 克隆的项目中删除版本跟踪?
Posted
技术标签:
【中文标题】如何从从 git 克隆的项目中删除版本跟踪?【英文标题】:How do I remove version tracking from a project cloned from git? 【发布时间】:2011-06-12 20:29:43 【问题描述】:我想从项目目录中删除所有版本跟踪。
这样做的正确方法是什么?
我可以执行一个shell命令吗,例如:
rm -rf .git
从我的项目目录中,还是有办法以 Git 命令的形式执行此操作?
我使用这个项目来学习 Git,并意识到我在项目早期犯了一些错误,涉及移动、重命名和删除文件。我想删除所有 Git 跟踪并从 git init
重新开始。
【问题讨论】:
考虑git-archive。 根据错误的严重程度,您可能实际上想要对整个事情进行交互式变基,并在早期将大量提交压缩在一起,但要保存最近的良好历史记录。 Windows 用户:rd /s /q .git
【参考方案1】:
Git 用于信息的所有数据都存储在.git/
中,因此删除它应该可以正常工作。当然,请确保您的工作副本处于您想要的确切状态,因为其他所有内容都将丢失。 .git
文件夹已隐藏,因此请确保打开“显示隐藏的文件、文件夹和磁盘”选项。
从那里,您可以运行 git init
来创建一个新的存储库。
【讨论】:
我确定我的子文件夹没有自己的隐藏 .git 目录,但是当我将这些文件夹推送到 github 时,我仍然会看到灰色的图标...还有什么我可以尝试的吗? 还有.gitconfig,所以你也应该删除它。 考虑 'code'git rm -r --cached your_folder/ 我的目标是将一个被跟踪的 git 文件夹变成另一个被跟踪的 git 文件夹的子文件夹。在我删除子文件夹的缓存之前,新的父级不会识别新的子级。 我希望可以像删除单个目录一样轻松删除所有其他内容。通常,您最终会从“已删除”部分中到处都是垃圾。【参考方案2】:rm -rf .git
就足够了。这将吹走所有与 Git 相关的信息。
【讨论】:
如果你在windows中得到一些cannot unlink
Permission denied
,你可以在任务管理器中杀死explorer
进程,重新运行rm -rf .git
然后重新打开资源管理器。它对我有用!
如果你在windows上有Git Bash
,它也可以工作。
-rf
是什么意思?
-r
表示“递归”,因此它将删除文件夹的全部内容,而不是因为文件夹不为空而出错,而 -f
则不会询问您是否真的很确定要删除东西。
@Lucky_girl 它将从您的结帐中删除所有 Git 状态。没有分支,没有历史,没有遥控器,什么都没有。所有这些东西都存储在.git
目录中。没有它,您实际上就没有 git 存储库了。【参考方案3】:
除了以下步骤之外,您可能还需要删除 .gitignore 文件。
如果您想删除项目中的任何 Git 痕迹,请考虑删除 .gitignore 文件。
** 如果您希望将 Git 重新合并到项目中,请考虑保留 .gitignore 文件。
某些框架可能会自动生成 .gitignore 文件,因此您可能想保留它。
基于 Linux、Mac 或 Unix 的操作系统
打开终端并导航到您的项目目录,即 - cd path_to_your_project
。
运行此命令:
rm -rf .git*
这将从您的项目中删除 Git 跟踪和元数据。如果您想保留元数据(例如 .gitignore 和 .gitkeep),您可以通过运行 rm -rf .git
仅删除跟踪。
窗口
使用命令提示符
rmdir
or rd
command 不会删除/移除您指定的目录中的任何隐藏文件或文件夹,因此您应该使用del
命令确保从.git
文件夹中移除所有文件。
打开命令提示符
要么点击Start
,然后点击Run
,要么同时点击键和r。
输入cmd
并回车
导航到项目目录,即-cd path_to_your_project
运行这些命令
del /F /S /Q /A .git
rmdir .git
第一个命令删除所有文件和文件夹内 .git
文件夹。第二个删除 .git
文件夹本身。
没有命令提示符
打开文件资源管理器并导航到您的项目
显示隐藏的文件和文件夹 - 请参阅 this article 以获得视觉指南
在工具栏的视图菜单中,选择Options
在Advanced Settings
部分,找到Files and Folders
列表下的Hidden files and Folders
并选择Show hidden files and folders
关闭选项菜单,您应该会看到所有隐藏的文件夹和文件,包括 .git
文件夹。
删除
.git
文件夹 删除.gitignore
文件**(请参阅此答案顶部的注释)
【讨论】:
rmdir .git
不起作用,因为它下面有文件夹。
Dale,查看rmdir .git
下的行。它解释了rmdir .git
上面的命令用于删除.git 文件夹中的所有文件和文件夹,然后rmdir
命令删除文件夹本身。
你还不如rd /s /q .git
,这会炸掉文件夹和里面的所有东西
对于 Windows,rmdir /S .git
完成了工作。谢谢你。【参考方案4】:
手动移动所有.git*
不是一个聪明的选择,特别是当这些.git
文件像我的情况一样隐藏在子文件夹中时:当我通过composer+git安装Skeleton Zend 2时,有很多在文件夹和子文件夹中创建的.git
文件数。
我在我的 GitHub shell 上尝试了rm -rf .git
,但是 shell 无法识别 Remove-Item 的参数-rf
。
www.montanaflynn.me 引入以下shell command 以递归方式一次性删除所有.git
文件!真的很有效!
find . | grep "\.git/" | xargs rm -rf
【讨论】:
“我在我的 Github shell 上尝试了 'rm -rf .git',但 shell 无法识别 Remove-Item 的参数 '-rf'。” - 那是因为rm
是remove-item
的PowerShell 别名。 -rf
是 *nix shell rm
参数。对于 PowerShell,请改用 rm -recursive -force
。
危险! grep .git
将匹配 legit.gif
之类的文件或文件名中间带有“git”的文件!请删除或编辑答案!!!
更新以仅匹配 git 目录:find . | grep "\.git/"
仍然不够安全:这将捕获以.git
结尾的文件和目录。应该是grep "^\.git/"
;更好(更快)的是在 find
调用中按名称过滤:find . -name .git
。
请执行以下命令:find -name .git | xargs rm -rf
和 find -name .gitignore | xargs rm -rf
。【参考方案5】:
我正在使用 Linux 环境。我以递归方式删除了所有 Git 文件和文件夹:
rm -rf .git
rm -rf .gitkeep
【讨论】:
【参考方案6】:解决此问题的最简单方法是使用命令行。 键入此命令
rm -R .git/
或
rm -rf .git/
【讨论】:
【参考方案7】:在 Windows 环境中,您只需键入以下内容即可从项目目录中删除 Git 跟踪。
rd .git /S/Q
【讨论】:
非常感谢。它奏效了【参考方案8】:从根目录运行
find . | grep .git
查看匹配项并确认其中仅包含您要删除和调整以适应的那些文件。一旦满意,运行
find . | grep .git | xargs rm -rf
【讨论】:
【参考方案9】:MacOS:要移除版本跟踪,您需要移除 Git 目录。为此,打开终端并输入您的项目文件。之后,您需要删除 Git 目录。
例子:
在终端短写(-r:递归,-f:强制,星号以.git目录开头):
rm -rf .git*
结果是删除了 Git 目录和版本跟踪。
【讨论】:
【参考方案10】:Windows 命令提示符 (cmd) 用户: 如果 "rm -r" 不可用,请使用以下选项。
您可以使用单行命令在源项目文件夹中递归删除“.git”。
FOR /F "tokens=*" %G IN ('DIR /B /AD /S *.git*') DO RMDIR /S /Q "%G"
【讨论】:
【参考方案11】:您还可以使用一个命令删除所有与 git 相关的内容。 .gitignore 文件也会和这个一起被删除。
rm -rf .git*
【讨论】:
【参考方案12】:适用于 ubuntu 和 linux 操作系统 使用这个命令:-
rm -rf .git*
【讨论】:
这已经在其他一些答案中提到过。 在回答已有答案的旧问题时,请确保提供新颖的解决方案或比现有答案更好的解释。以上是关于如何从从 git 克隆的项目中删除版本跟踪?的主要内容,如果未能解决你的问题,请参考以下文章