我正在尝试使用 gitpython 创建更新程序。但是,当我尝试克隆到现有目录时出现错误。
Traceback (most recent call last):
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.2032.0_x64__qbz5n2kfra8p0\lib\tkinter\__init__.py", line 1895, in __call__
return self.func(*args)
File "c:\Users\kiyer\Documents\GitHub\SmartRC App\SysBasic.py", line 66, in group
sysbasic.update.InstallClientUpdate(root, update)
File "c:\Users\kiyer\Documents\GitHub\SmartRC App\SysBasic.py", line 100, in InstallClientUpdate
client(window, update)
File "Sys\Installer.py", line 35, in client
Repo.clone_from("https://github.com/NoKodaAddictions/File-Database.git", path2)
File "C:\Users\kiyer\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\git\repo\base.py", line 1032, in clone_from
return cls._clone(git, url, to_path, GitCmdObjectDB, progress, multi_options, **kwargs)
File "C:\Users\kiyer\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\git\repo\base.py", line 973, in _clone
finalize_process(proc, stderr=stderr)
File "C:\Users\kiyer\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\git\util.py", line 329, in finalize_process
proc.wait(**kwargs)
File "C:\Users\kiyer\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\git\cmd.py", line 408, in wait
raise GitCommandError(self.args, status, errstr)
git.exc.GitCommandError: Cmd('git') failed due to: exit code(128)
cmdline: git clone -v https://github.com/NoKodaAddictions/File-Database.git C:\Users\kiyer\Documents\GitHub\SmartRC App\
stderr: 'fatal: destination path 'C:\Users\kiyer\Documents\GitHub\SmartRC App' already exists and is not an empty directory.
如何使用 gitpython 将存储库克隆到非空文件夹中?
顺便说一下,我是 gitpython 模块的新手。
答案 0 :(得分:0)
底层程序 git 不允许这样做。您可以 git clone 到一个临时位置,然后将其中的所有内容 mv 到这个位置。
答案 1 :(得分:0)
虽然默认情况下 git 不允许这样做,但如果您先将其克隆为裸仓库,然后将其解开,然后进行结帐,则无法实现类似的效果:
git clone --bare https://.... path/to/.git
git config --file path/to/.git/config core.bare false
git -C path/to checkout