在Windows中取消初始化GIT存储库的命令

iyzzxitl  于 2022-09-21  发布在  Windows
关注(0)|答案(1)|浏览(139)

要在Windows中取消初始化Git Repo,需要使用什么特定语法?

在Windows服务器中,当一个Python程序尝试在包含git repo的目录上运行Shutil.rmtree()时,我们会遇到以下错误。如下所示,该错误指示shutil.rmtree()命令禁止访问.git子目录中的文件。

我们已经阅读了this other posting,其中包括一些建议,如在Linux中使用rm -rf,或在Windows中手动删除.git文件夹。我们还阅读了一些帖子,指出shutil.rmtree()不能以非管理员用户的身份强制销毁。

但是,该目录是由运行git clone命令的同一用户创建的,因此我们假设一定有某个git命令可以清除.git中的所有文件。

假设我们的用户可以使用git clone,我们可以想象我们的使用可以使用git uninit。那么,我们需要使用什么命令来近似git uninit并有效地删除Windows中的.git文件夹及其所有内容,而不会引发以下错误?

Traceback (most recent call last):
  File "C:pathtomyappsetup.py", line 466, in undoConfigure
    shutil.rmtree(config_path)
  File "C:UsersuserAppDataLocalProgramsPythonPython310libshutil.py", line 739, in rmtree
    return _rmtree_unsafe(path, onerror)
  File "C:UsersuserAppDataLocalProgramsPythonPython310libshutil.py", line 612, in _rmtree_unsafe
    _rmtree_unsafe(fullname, onerror)
  File "C:UsersuserAppDataLocalProgramsPythonPython310libshutil.py", line 612, in _rmtree_unsafe
    _rmtree_unsafe(fullname, onerror)
  File "C:UsersuserAppDataLocalProgramsPythonPython310libshutil.py", line 612, in _rmtree_unsafe
    _rmtree_unsafe(fullname, onerror)
  File "C:UsersuserAppDataLocalProgramsPythonPython310libshutil.py", line 617, in _rmtree_unsafe
    onerror(os.unlink, fullname, sys.exc_info())
  File "C:UsersuserAppDataLocalProgramsPythonPython310libshutil.py", line 615, in _rmtree_unsafe
    os.unlink(fullname)
PermissionError: [WinError 5] Access is denied: 'C:\path\to\callingDir\.git\objects\pack\pack-71e7a693d5aeef00d1db9bd066122dcd1a96c500.idx'
jq6vz3qz

jq6vz3qz1#

你基本上是在问“如何在Windows中删除文件夹及其内容”?那么rmdir/s文件夹是不是有问题?假设git repo处于您想要保留的状态(即当前未 checkout 某个旧版本),并且您确定要将其删除(无需用户确认),则可以执行以下操作:

rmdir /s /q .git

/s确保内容也被删除。并且/q确保操作是静默的(假定为确认的‘y’)。

如果您使用的是PowerShell而不是命令提示符,则可以使用:

Remove-Item ".git" -Force -Recurse

相关问题