我试图在我的虚拟机上使用python中的Gitpython,但由于sudo和拒绝权限等而挣扎。所以我想尝试不同的方法。当我写sudo git时,首先要求我输入密码,然后输入git用户名,然后输入git密码,我现在要做的是在python中预装某些os.system中的那些。这是我迄今为止所取得的成就:
os.system("echo <password> | sudo -S git pull")
这解决了sudo密码的第一个问题。但是,如何为命令行返回的问题预先填写答案?
如何为命令行返回的问题预填充答案?
通过避免必须预先填充任何东西。
这意味着,作为root,您应该能够执行git pull而无需输入用户名/密码。
如果你可以在命令行中以root身份执行此操作,那么您将能够在Python os.system("echo <password> | sudo -S git pull")
调用中使其工作。
为了那个原因:
1 /首先在远程URL本身中设置用户名
cd /path/to/repo
git remote -v
https://aserver/auser/arepo
git remote set-url origin https://username@aserver/auser/arepo
2 /使用credential helper(以root身份完成)以便Git自己查找密码(而不是您必须尝试将其提供给命令行)。
一旦它作为root
工作,在Python程序中重复相同的git pull
(作为root
运行)