我试图在我的虚拟机上使用python中的Gitpython但由于sudo和拒绝权限等而挣扎。所以我想尝试不同的方法。当我写sudo git时,首先要求我输入密码,然后输入git用户名,然后输入git密码,我现在要做的是在python中预装某些os.system中的那些。这是我到目前为止所取得的成就:
os.system("echo <password> | sudo -S git pull")
这解决了sudo密码的第一个问题。但是,如何为命令行返回的问题预先填写答案?
答案 0 :(得分:1)
如何预填命令行将返回的问题的答案?
通过避免预填充任何东西。
这意味着,作为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
运行)