我曾经问过一个非常相似的问题并得到了一个从命令行起作用的响应,但我现在想用R来自动化Windows的过程(Linux更容易).
这是我正在尝试做的事情:
我相信基于输出,我在失败之前一直到第5步(因为提交和本地目录中的文件永远不会转到云中的github).我知道第2步有效,因为这里创建了空仓库.我不知道如何测试第5步.在最后一步,shell(cmd6, intern = T)RGui和RStudio导致永恒的死亡螺旋.问题是:如何将提交和本地存储推送到云端.
这是我更新的代码(用户特定的唯一内容是第三代码块中的用户名和密码):
## Create Directory
repo <- "foo5"
dir.create(repo)
project.dir <- file.path(getwd(), repo)
## Throw a READ.ME in the directory
cat("This is a test", file=file.path(project.dir, "READ.ME"))
## Github info (this will change per user)
password <-"pass"
github.user <- "trinker"
## Get git location
test <- c(file.exists("C:/Program Files (x86)/Git/bin/git.exe"),
file.exists("C:/Program Files/Git/bin/git.exe"))
gitpath <- c("C:/Program Files (x86)/Git/bin/git.exe",
"C:/Program …Run Code Online (Sandbox Code Playgroud) 我致命:当我尝试将代码推送到我的仓库时,验证失败.我也在我的github帐户上添加了公钥.当我这样做时:
ssh -i git@github.com
我明白了
Hi amangupta052! You've successfully authenticated, but GitHub does not provide shell access.
有人可以帮忙吗?谢谢
现在使用新的双因素身份验证变得更加重要,因为每次在终端上需要密码时都必须创建新令牌.基本上,我正在寻找与OS X中可用的osxkeychain同等的功能,我可以在Linux桌面和服务器上使用它:
git config --global credential.helper osxkeychain
Run Code Online (Sandbox Code Playgroud)
我搜索了可能的解决方案,但到目前为止我不喜欢它们中的任何一个:
cache --timeout=3600- 它最终会过期,重新输入密码会拖累新的2FA来吧,必须有一些适合Linux的基于终端的钥匙串,可以挂钩到git的credential.helper!
我认为标题很好地描述了我的问题:我想安排git push.更具体地说,我想知道我怎么做
git在指定的时间推进git push在指定时间执行而不重新认证(最好是以其他方式尝试push进行身份验证的方式).我在linux上(Ubuntu 13.04),因此使用bash编写脚本会很好.
要求可能很奇怪.但有时我真的需要这个功能.好的,这就是事情,我总是在代理之后工作.无论是在办公室我使用公司代理还是在家里我也使用VPN和代理(你知道,我在中国,所以我希望你能理解).
通常我使用git协议来连接github远程存储库,但是我很难在git协议后面设置代理,所以我决定用以下命令切换回http(s)
git remote set-url origin https://github.com/<username>/repo.git
git config http.proxy http://proxy:8080
它就像一个魅力.但是每当我连接到远程服务器时,git都会询问用户名和密码,例如pull/push.
我只有一个github帐户,我想保存一些打字,所以问题是如何避免每次我想要推送时输入github用户名.我可以接受输入我的密码,但我不想输入用户名.怎么实现呢?
git现在,我已经在我的帐户上启用了2FA,因此我无法通过命令行使用用户名/密码提交我的回购.
我有一个"用户访问令牌",但我真的非常讨厌它.所以现在我只能在将这个超长字符串复制到我的剪贴板中时提交,如果有人看到该字符串或以某种方式获取对我的剪贴板的访问权限,或者我将其粘贴到某个地方,或者我把它放在一个文件中并且访问该文件攻击者可以破坏我的回购破坏?
我真的不明白这比记住12位数字随机数字/字母/符号密码更安全.我必须做错事或误解如何使用这个个人访问令牌.我究竟做错了什么?
我知道GitHub中的SSH没有问题(每次都没有输入用户名/密码即可),但我需要使用HTTPS作为我的回购.
现在,我git init编辑了回购,我承诺,我git remote add origin https://github.com/user/repo.git 按照GitHub的建议做了.
我正准备做git push -u origin master:首先它提示我输入用户名和密码,然后回答:
remote: Anonymous access to user/repo.git denied.
fatal: Authentication failed for 'https://github.com/user/repo.git/'
Run Code Online (Sandbox Code Playgroud)
我有300%肯定我输入了正确的密码(我还是再试过几次).我在这里和那里搜索,然后我尝试了最后的机会:为Mac安装GitHub应用程序.我输入了我的凭据,输入了他们发给我的双因素身份验证码,并试图再次推送:这次它有效.
为什么?GitHub应用在幕后做了什么?它与2因素身份验证有关吗?
无论如何,我将无法在我设置的每台机器上下载应用程序,可能是通过使用某些脚本自动执行此过程.
我想将项目上传到存储库,但问题是,当我运行命令时:
$ git push -u origin master
Run Code Online (Sandbox Code Playgroud)
它向我展示了如下内容:
Username:
Password:
error: The requested URL returned error: 403 while accessing https://github.com/sanxelsanto/books3.git/info/refs
fatal: HTTP request failed
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能避免这样的错误信息?