我在Jupyter Notebook的单元格中具有以下代码:
!git push origin master
这将询问我的Github密码,但由于找不到输入密码的方式,单元继续运行。由于某种原因,我想以这种方式推送代码。
我尝试遵循similar questions,但对于我来说似乎没有任何作用。这是我尝试过的方法,但是没有用:
import getpass
import os
password = getpass.getpass()
command = "git -S push origin master " #can be any command but don't forget -S as it enables input from stdin
os.system('echo %s | %s' % (password, command))
这是上面的日志:
unknown option: -S
usage: git [--version] [--help] [-C <path>] [-c <name>=<value>]
[--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
[-p | --paginate | --no-pager] [--no-replace-objects] [--bare]
[--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
<command> [<args>]
答案 0 :(得分:0)
-S
是sudo
的一个选项,而不是git
...,您可以看到git
甚至都不要求输入密码,它只是告诉您{{ 1}}无效。
我相信-S
使用安全的方式来获取密码,是从git
读取而不是从stdin读取。正确输入tty
来输入该密码以使其正常工作可能非常困难。此外,这意味着您必须在笔记本中以纯文本形式编写密码。
处理此问题的正确方法是:
tty
无密码生成一个ssh
密钥 ssh-keygen
以使用SSH协议执行git
这完全避免了要求输入密码的情况。