way*_*ure 93 github github-pages
我正在尝试使用个人访问令牌与GitHub进行身份验证.在github的帮助文件中,它声明使用curl方法进行身份验证(https://help.github.com/articles/creating-an-access-token-for-command-line-use).我试过这个,但我仍然无法推送给GitHub.请注意,我正试图从未经身份验证的服务器(Travis-CI)推出.
cd $HOME
git config --global user.email "emailaddress@yahoo.com"
git config --global user.name "username"
curl -u "username:<MYTOKEN>" https://github.com/username/ol3-1.git
git clone --branch=gh-pages https://github.com/username/ol3-1.git gh-pages
cd gh-pages
mkdir buildtest
cd buildtest
touch asdf.asdf
git add -f .
git commit -m "Travis build $TRAVIS_BUILD_NUMBER pushed to gh-pages"
git push -fq origin gh-pages
Run Code Online (Sandbox Code Playgroud)
此代码导致错误:
remote:匿名访问scuzzlebuzzle/ol3-1.git被拒绝.
致命:" https://github.com/scuzzlebuzzle/ol3-1.git/ "的身份验证失败
谢谢
Ian*_*sco 150
你的curl命令是完全错误的.您应该使用以下内容
curl -H 'Authorization: token <MYTOKEN>' ...
Run Code Online (Sandbox Code Playgroud)
除此之外,如果实际上它是私有的,那么它不会授权您的计算机克隆存储库.(但是,看看它表明它不是.)你通常会做的是以下几点:
git clone https://scuzzlebuzzle:<MYTOKEN>@github.com/scuzzlebuzzle/ol3-1.git --branch=gh-pages gh-pages
Run Code Online (Sandbox Code Playgroud)
这会将您的凭据添加到克隆存储库时创建的远程数据库.但遗憾的是,您无法控制Travis如何克隆您的存储库,因此您必须像这样编辑遥控器.
# After cloning
cd gh-pages
git remote rm origin
git remote add origin https://scuzzlebuzzle:<MYTOKEN>@github.com/scuzzlebuzzle/ol3-1.git
Run Code Online (Sandbox Code Playgroud)
这将修复您的项目使用内置凭据的远程.
Bru*_*nno 39
您可以轻松更改远程身份验证,首先:
删除您当前的来源:
git remote remove origin
Run Code Online (Sandbox Code Playgroud)
进而:
git remote add origin https://<TOKEN>@github.com/<USERNAME>/<REPO>.git
Run Code Online (Sandbox Code Playgroud)
您可以在此处了解如何生成身份验证令牌。
Ech*_*lon 32
@YMHuang通过文档链接让我走上正轨.
首先,您需要创建个人访问令牌.这里描述如下:https://help.github.com/articles/creating-an-access-token-for-command-line-use/
Laughably,文章告诉你如何创建它,但绝对不知道如何处理它.经过大约一个小时的拖网文件和SO,我终于找到了答案: -
$ git clone https://github.com/user-or-organisation/myrepo.git
Username: <my-username>
Password: <my-personal-access-token>
Run Code Online (Sandbox Code Playgroud)
当我远程工作并且仍然进行本地更改时,我实际上被迫通过公司政策启用2FA,所以事实上它不是clone我需要的push.我在许多地方读到了我需要删除并重新创建遥控器,但实际上我的正常push命令与clone上面的命令完全相同,并且遥控器没有改变: -
$ git push https://github.com/user-or-organisation/myrepo.git
Username: <my-username>
Password: <my-personal-access-token>
Run Code Online (Sandbox Code Playgroud)
Bos*_*osh 26
需要注意的是sigmavirus24的反应,需要你给特拉维斯令牌具有相当广泛的权限 - 因为GitHub上只提供令牌具有广泛的范围,如"写我的所有公开回购"或"写我的所有私人回购协议".
如果你想收紧访问权限(更多工作!),你可以使用GitHub部署密钥和Travis加密的yaml字段.
这是该技术如何运作的草图 ......
首先生成一个RSA部署密钥(via ssh-keygen)my_key,并将其作为部署密钥添加到github repo设置中.
然后...
$ password=`openssl rand -hex 32`
$ cat my_key | openssl aes-256-cbc -k "$password" -a > my_key.enc
$ travis encrypt --add password=$password -r my-github-user/my-repo
Run Code Online (Sandbox Code Playgroud)
然后$password通过添加到yaml文件,使用该文件在集成时解密部署密钥:
before_script:
- openssl aes-256-cbc -k "$password" -d -a -in my_key.enc -out my_deploy_key
- echo -e "Host github.com\n IdentityFile /path/to/my_deploy_key" > ~/.ssh/config
- echo "github.com ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==" > ~/.ssh/known_hosts
Run Code Online (Sandbox Code Playgroud)
注意:最后一行预先填充github的RSA密钥,这样就无需在连接时手动接受.
Joh*_*ang 26
使用OAuth令牌实现自动化/ Git自动化使用OAuth令牌实现Git自动化
$ git clone https://github.com/username/repo.git
Username: your_token
Password:
Run Code Online (Sandbox Code Playgroud)
它也适用于git push命令
参考 https://help.github.com/articles/git-automation-with-oauth-tokens/
Ton*_*Ngo 25
通常我是这样的:
git push https://$(git_token)@github.com/user_name/repo_name.git
Run Code Online (Sandbox Code Playgroud)
该git_token从变量读取配置在Azure中的DevOps。
你可以在这里阅读我的完整博客文章。
Scr*_*die 23
要实际使用它,以下顺序对我有用:
git remote remove origin
git remote add origin https://[TOKEN]@github.com/[USER]/[REPO]
git push
Run Code Online (Sandbox Code Playgroud)
Mhm*_*z_A 15
我必须添加oauthoroauth2作为用户名才能成功进行身份验证:
https://oauth:<TOKEN>@github.com/user/repo.git
Run Code Online (Sandbox Code Playgroud)
Dav*_*ima 14
在 VS Code 环境和私有 GitHub 中唯一对我有帮助的答案。
git clone https://[MY_USER_NAME]:[GITHUB_PERSONAL_ACCESS_TOKEN]@github.com/davidsonlima/davidson-myrepo.git不带方括号
Oma*_*gdy 12
转到此链接:https : //github.com/settings/tokens。并在那里生成令牌。
git push
Username: <your username>
Password: <the access token>
Run Code Online (Sandbox Code Playgroud)
现在您不必每次推送更改时都输入用户名和密码。
您只需键入git push并按Enter。并且将推送更改。
rad*_*vus 12
我在Ubuntu 20.04 (Focal Fossa) 上,我不断收到消息,很快我将无法从控制台登录。我非常困惑。
最后,我找到了下面的网址,这将起作用。但是您需要知道如何创建PAT(个人访问令牌),您必须将其保存在计算机上的文件中。
最终 URL 如下所示:
git push https://1234567890123456789012345678901234567890@github.com/user-name/repo.git
Run Code Online (Sandbox Code Playgroud)
长 PAT(个人访问令牌)值 -- URL 中 // 和 @ 符号之间的整个长值就是您的 PAT。
用户名将是您的确切用户名
repo.git将是您的确切存储库名称
你也可以这样使用它:
当你做一个
git push
1. 系统会提示您输入用户名和密码
2.只需像往常一样提交您的用户名
3.现在提交您的 PAT 作为您的密码,它将起作用。
您需要按照以下步骤生成 PAT:创建个人访问令牌
这将为您提供将放置在 URL 中的 PAT 值。
创建 PAT 时,请确保选择以下选项,以便它能够允许您管理存储库。
保存您的 PAT 或丢失它
拥有 PAT 后,您将需要将其保存在本地文件中,以便再次使用。如果您不将其保存在某处,则无法再次看到它,您将被迫创建一个新的 PAT。
现在你至少需要:
对于 1,只需使用:
cat ~/files/myPatFile.txt
Run Code Online (Sandbox Code Playgroud)
其中路径是您存储 PAT 值的位置和文件的真实路径。
对于 2
xclip -selection clipboard < ~/files/myPatFile.txt
Run Code Online (Sandbox Code Playgroud)
这会将文件的内容复制到剪贴板,以便您可以更轻松地使用 PAT。
仅供参考 - 如果您没有 xclip,请执行以下操作:
sudo apt-get install xclip
Run Code Online (Sandbox Code Playgroud)
它下载并安装 xclip。如果您没有apt-get,则可能需要使用其他安装程序(如YUM)。
Ish*_*ani 12
由于我使用的是 macOS,所以我可以专门针对 macOS 来回答这个问题。我们也可以将其用于 Windows。有用!!在您的 GitHub 帐户中,单击右上角的头像并转到设置配置文件。
点击设置:
点击开发者设置:
单击个人访问令牌:
然后点击生成新令牌:
为您的访问令牌命名并检查第一个选项。
向下滚动并单击“生成令牌”
现在,当您推送存储库时,请使用以下语法:
git remote add origin https:<access__token>://@github.com/<username>/<repo__name>.git
git push https://<access__token>@github.com/<username>/<repo__name>.git
Run Code Online (Sandbox Code Playgroud)
在我看来,您可以使用第二个选项,同时推送存储库提供访问令牌,然后就可以开始了。
ccr*_*on1 11
这对我使用ssh有用:
__CODE__> __CODE__>__CODE__
git remote rm origin
git remote add origin https://[APPLICATION]:[NEW TOKEN]@github.com/[ORGANISATION]/[REPO].git
Run Code Online (Sandbox Code Playgroud)
小智 10
git remote remove origin
Run Code Online (Sandbox Code Playgroud)
git remote add origin https://{accesstoken}:{accesstoken}@gitlab.com/{username}/{repo}.git
Run Code Online (Sandbox Code Playgroud)
git push https://{youraccesstoken}@github.com/{username}/{repo}.git
Run Code Online (Sandbox Code Playgroud)
这对我有用。
我以前使用密码通过 Git CLI 访问我的私人存储库,并使用git config --global credential.helper store.
由于今天取消了对密码的支持,我无法使用git config建议的命令使用令牌更新我的凭据。
如果其他人在 Linux 上遇到此问题,您可以手动更新~/.git-credentials文件,例如
nano ~/.git-credentials
Run Code Online (Sandbox Code Playgroud)
在:和@符号之间输入您的令牌。(要保存并关闭文件,请按Ctrl+ O、Enter、Ctrl+ X)。
在凭据文件中更新令牌后,您可能还必须运行以下命令(请参阅@guhur 的评论):
git config --global credential.helper store
Run Code Online (Sandbox Code Playgroud)
请注意,通过使用 Git 的凭证助手,任何有权访问您的主目录的人都可以看到您的令牌。
如果您使用 GitHub Enterprise 并克隆存储库或推送给您一个 403 错误而不是提示输入用户名/令牌,您可以使用:
删除存储库
打开命令提示符并导航到您希望存储库所在的文件夹
类型:
git clone https://[USERNAME]:[TOKEN]@[GIT_ENTERPRISE_DOMAIN]/[ORGANIZATION]/[REPO].git
Run Code Online (Sandbox Code Playgroud)
以下步骤对我有用:
git remote remove origin
git remote add origin https://[TOKEN]@[REPO LINK]
命令将是:
git remote add origin https://[TOKEN]@github.com/username/codf.git
git push origin branchName小智 7
我遇到了这个问题,但找到了解决方案:
git push https://github.com/<username>/<project_name>
and
username: paste your personnal access token
password: paste your personnal access token
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
156399 次 |
| 最近记录: |