我在 Github 上有一个私人存储库,用于我正在从事的项目。到目前为止,我只在家里的台式机上工作,但我刚买了一台笔记本电脑,并正在尝试对其进行设置,以便我可以从任何一台计算机上处理项目,并推送/拉取更改。
我在笔记本电脑的 Github 帐户中添加了一个新的 SSH 密钥,并成功克隆并更改了我设置的公共测试存储库。但是,我无法克隆私人仓库。为了克隆私人仓库,我需要在命令行中做些什么特别的事情吗?我是否需要为我的笔记本电脑设置一个新的 GitHub 帐户并将自己设置为协作者?
我使用的命令是 git clone git://github.com/username/reponame.git
这对我有用:
git clone https://username@github.com/username/repo_name
私有克隆 URL 采用 git@github.com:username/repo.git
形式 - 也许您需要使用 git@
而不是 git://
?
git://
URL 是只读的,而且私人存储库似乎不允许这种形式的访问。
我已经多次遇到这个问题,每次我登陆这个页面时,都尝试了一切,但都失败了!
这是因为我启用了 2FA!
根据https://help.github.com/articles/which-remote-url-should-i-use/#when-2fa-is-enabled
如果您启用了双重身份验证,或者如果您正在访问使用 SAML 单点登录的组织,则必须提供个人访问令牌,而不是输入您的 HTTPS Git 密码。
按照此链接创建访问令牌 git clone https://github.com/username/repo_name.git (默认的 git repo 链接就足够了!)输入您的用户名并使用访问令牌作为密码!!
更新:
如果您不介意在命令行中公开您的访问令牌,您也可以将访问令牌粘贴为用户名,然后按回车键(无需密码)。
讨厌一遍又一遍地复制和粘贴访问令牌?使用 git config credential.helper store (不要在你不信任的机器上这样做)
https://username:access_token@github.com/username/repo_name.git
如果我有公共 repo 更改为 private,这对我很有帮助。我需要做的就是使用该格式更改远程源。
这对我有用:
git clone https://username:password@github.com/username/repo_name.git
git clone https://username@github.com/username/repo_name.git
read -s
)。
2022 年 4 月更新:
您可以从您的帐户克隆私有存储库,如果您是组织的所有者或成员,也可以从组织克隆私有存储库。
*pat 是 PAT(个人访问令牌)。
git clone https://<pat>@github.com/<your account or organization>/<repo>.git
要从您的帐户或组织克隆私有存储库,您需要在您的 Github 帐户上生成 PAT(个人访问令牌),并将其添加到上面的命令中。 *组织没有 PAT 生成器。
这是您在 Github 帐户上生成 PAT 的方式:
1、进入“设置”:
https://i.stack.imgur.com/3VrIs.png
2,向下滚动然后转到“开发人员设置”:
https://i.stack.imgur.com/uDsJm.png
3,按“个人访问令牌”然后按“生成新令牌”:
https://i.stack.imgur.com/QtFtT.png
4、填写“Note”然后勾选“repo”:
*如果未选中“repo”,则无法克隆私有存储库。
https://i.stack.imgur.com/3HshU.png
5,向下滚动然后按“生成令牌”:
https://i.stack.imgur.com/Nxmr0.png
6、最后生成一个PAT:
https://i.stack.imgur.com/9XEDY.png
这是上面生成的带有 PAT 的命令:
git clone https://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@github.com/<your account or organization>/<repo>.git
对我来说,解决方案是:
git clone https://myusername@restoftherepolink.git
在这里,您需要成为 repo 的所有者,但如果您不是,那么它将成为
git clone https://myusername@github.com/ownersusername/repo_name.git
如果您有 2FA enabled
,那么:
从右上角的配置文件图标转到设置或访问 https://github.com/settings/profile 转到底部选项卡或转到 https://github.com/settings/tokens 在此处打开最后一个选项卡 个人令牌。并生成令牌复制令牌并运行 git clone https://myusername@restoftherepolink.git
https://i.stack.imgur.com/BXYZw.png
https://myusername@restoftherepolink.git
是您尝试克隆的存储库,这些设置在您自己的用户设置中可用。
使用 Git for Windows 更容易使用 HTTPS url。
打开一个 git shell 然后 git clone https://github.com/user/repo
。出现提示时输入用户名和密码。无需设置 SSH 密钥。
正如每个人都知道克隆的过程,我想在这里添加一些东西。不用担心特殊字符或将“@”写成“%40”see character encoding
$ git clone https://username:password@github.com/user/repo
这条线可以完成这项工作
假设我有一个包含特殊字符的密码(我不知道用什么替换密码中的“@”)如果我想使用原始密码以外的其他临时密码怎么办
为了解决这个问题,我鼓励使用 GitHub 开发者选项来生成访问令牌。我相信访问令牌是安全的,您不会找到任何特殊字符。
creating-a-personal-access-token
现在我将编写以下代码来访问我的存储库。
$ git clone https://username:token@github.com/user/repo
我只是用 Access-token 替换我的原始密码,现在我不担心有人看到我的访问凭证,我可以随时重新生成令牌。
https://i.stack.imgur.com/iLCbR.png
google colab
中效果很好,在共享 .ipynb
文件之前更改您的密码 :)
解决方案:2022 年 2 月
转到设置 > 开发人员设置 > 个人访问令牌链接:https://github.com/settings/tokens 点击生成新令牌 选择范围(全部启用以获得完全访问权限)
这将生成一个看起来像这样的令牌:
https://i.stack.imgur.com/Z24Hk.png
现在使用以下命令:
git clone https://user:TOKEN@github.com/username/repo.git
2021 年更新(已过时)
过时:尝试以下命令:
git clone https://user:pass@github.com:username/repo.git
将解决以下错误:
Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.
并将您链接到以下支持页面:
解决方案 2021(过时)
单击您的图标配置文件并转到(使用上面的链接获取更多指导):
settings> developer settings> personal acces token > generate new token
git clone https://user:TOKEN@github.com/username/repo.git
为我工作
2021 年 8 月 13 日更新
从 here:
2020 年 7 月,我们宣布我们打算要求对所有经过身份验证的 Git 操作使用基于令牌的身份验证(例如,个人访问、OAuth 或 GitHub 应用程序安装令牌)。从 2021 年 8 月 13 日开始,在 GitHub.com 上对 Git 操作进行身份验证时,我们将不再接受帐户密码。
你今天需要做什么
对于开发人员,如果您现在使用密码对 GitHub.com 的 Git 操作进行身份验证,则必须在 2021 年 8 月 13 日之前通过 HTTPS(推荐)或 SSH 密钥开始使用个人访问令牌,以避免中断。如果您收到警告说您正在使用过时的第三方集成,您应该将您的客户端更新到最新版本。
对于集成商,您必须在 2021 年 8 月 13 日之前使用 Web 或设备授权流程对集成进行身份验证,以避免中断。有关更多信息,请参阅授权 OAuth 应用程序和开发者博客上的公告。
在命令行上使用令牌
) 创建个人访问令牌 - 遵循 this。
2 ) 一旦你有了一个令牌,你可以在通过 HTTPS 执行 Git 操作时输入它而不是你的密码。
例如,在命令行中,您将输入以下内容:
$ git clone https://github.com/username/repo.git
Username: your_username
Password: your_token # <----- Bingo!
(*) 在 here 中查看更多信息。
git clone https://[USER]:[TOKEN]@github.com/username/repo.git
也有效!
我有一个公司(私人)帐户并启用了 2-Factor-Authentication,所以我必须合并一些帖子才能使其工作如下。 (记下来,因此可能对有相同情况的人有用)
Initially it was the Fatal Error.
fatal: repository 'https:
...
remote: Repository not found.
fatal: repository 'https:
安装了凭据管理器并更新了 GIT,如此处所述:https://codeshare.co.uk/blog/how-to-solve-the-github-error-fatal-httprequestexception-encountered/
这并没有解决问题,因为当我尝试使用 clone 命令时,问题转移到了下面,如下所示:
$ git clone https://<username>:<password>@github.com/<ORG_NAME>/<PROJECT-NAME>.git
remote: Invalid username or password.
fatal: Authentication failed for 'https://
我的密码中有 $ 符号,出于某种原因 GIT 命令行 / GIT Bash 不喜欢它。我可以在返回的错误文本中看到这一点,其中没有 $ 符号。
fatal: Authentication failed for 'https://<username>:<password-missing-$-symbol>@github.com/<ORG_NAME>/<PROJECT-NAME>.git'
我不得不参考这个网站:https://git-scm.com/book/en/v2/Git-Tools-Credential-Storage
请注意:如果在 Windows 凭据管理器中为您的帐户存储了不正确的密码,它也会增加问题。在转到以下步骤之前,我删除了以这种方式存储的 github 凭据。
$ git config --global credential.helper cache
$ git clone https://<username>:<password>@github.com/<ORG_NAME>/<PROJECT-NAME>.git
现在弹出了 Windows 凭据管理器。我在文本框中输入了我的用户名和密码(这接受了我的带有 $ 符号的密码)并提示我输入 2 因素身份验证代码。我输入了 Google Authenticator 的验证码,克隆完美启动。
$
是 Unix 中的保留字符。它标志着检索变量值的开始,该变量值的名称等于 $
符号后面的字符串。
我需要一种非交互式方法来克隆私人仓库。
受此问题启发:https://github.com/github/hub/issues/1644
步骤1。
在 github 开发者设置中创建个人访问令牌:https://github.com/settings/tokens
第2步。
git clone https://$token:x-oauth-basic@github.com/$username/$repo.git
从启用 2FA 的私人仓库克隆时,您需要遵循一个简单的步骤
转到您的 Git 帐户转到设置-> 开发人员设置-> 个人访问令牌单击生成新令牌创建一个具有所需标题和功能的令牌当您克隆私人存储库时,使用 git clone repoName,输入您的用户名,提供个人访问令牌作为密码。
当您收到私有仓库的身份验证失败错误消息时,请按照相同的步骤操作
作为对 mac 的回答,您可以在您的 github 存储库页面上获取您的 SSH 克隆 URL,方法是单击 You can clone with HTTPS, SSH, or Subversion.
上的 SSH
并复制 URL。
这在 mac git clone https://username@github.com:username/repo_name
上对我有用
除了 MK Yung 的回答:如果您不想收到 403 Forbidden 响应,请确保将要部署的任何位置的公钥添加到 repo 的部署密钥中。
首先确保您有一个 SSH 密钥或在以下位置生成一个:https://help.github.com/articles/generating-ssh-keys/
获得密钥后,您必须将其添加到您的 github 帐户:https://github.com/settings/ssh
对于 Windows 用户,以管理员身份运行 git bash 很有用。
现在克隆应该适用于私有存储库(repo),而无需输入您的用户名和密码。
如果您确定您没有启用 2FA,您有权访问 repo,并且 repo 存在,那么您的 git@github.com 可能使用其他帐户登录。
检查你能做到
ssh -T git@github.com
如果它显示另一个帐户,要解决此问题:
ssh-add -D
ssh-add ~/.ssh/your_rsa
ssh -T git@github.com
git clone git@github.com:<owner_name>/<repo_name>.git
unknown option -T
。我的 git 版本是 2.7.4
ssh -T git@github.com
如果新使用的计算机具有运行此命令的不同凭据
git clone https://github.com/username/reponame.git
直接不行。 Git 将尝试使用存储的凭据,并且不会提示您输入用户名和密码。由于凭证不匹配,git 将输出 Repository not found
并且克隆操作失败。我解决它的方法是删除旧凭据,因为我不再使用它们,然后再次运行上述命令并输入所需的用户名和密码并克隆私人仓库。
如果您想在 Dockerfile
中实现它,以下几行会有所帮助。
ARG git_personal_token
RUN git config --global url."https://${git_personal_token}:@github.com/".insteadOf "https://github.com/"
RUN git clone https://github.com/your/project.git /project
然后我们可以使用以下参数进行构建。
docker build --build-arg git_personal_token={your_token} .
1)尝试使用以下格式的用户名和密码运行命令
git clone https://your_username:your_password@github.com/username/reponame.git
现在其他人在这里提到的问题是当我们的密码中有特殊字符时。在 Javascript 中使用下面的代码将带有特殊字符的密码转换为 UTF-8 编码。
console.log(encodeURIComponent('password@$123'));
现在使用这个生成的密码而不是带有特殊字符的密码并运行命令。
希望这能解决问题。
git clone https://myusername:mygithubpassword@github.com/myusername/project.git
当您尝试使用来自回购的私人回购时,您需要为此传递用户名和密码。
我正在使用 Android Studio 从 GitHub 私有存储库和双因素身份验证 (2FA) 克隆项目。我创建了一个 lzl124631x's answer 中的 personal token。
然后我使用这样的 url 克隆了 repo:https://YourGitHubUsername:YourGeneratedPersonalToken@github.com/YourRepoPath.git
我认为还值得一提的是,如果由于某种原因不能使用 SSH 协议并且修改私有存储库 http(s) URL 以提供基本身份验证凭据也不是一个选项,那么还有一个替代方案。
可以使用 http.extraHeader
git-config option 配置基本身份验证标头:
git config --global --unset-all "http.https://github.com/.extraheader"
git config --global --add "http.https://github.com/.extraheader" \
"AUTHORIZATION: Basic $(base64 <<< [access-token-string]:x-oauth-basic)"
其中 [access-token-string]
占位符应替换为生成的真实令牌值(包括方括号)。您可以阅读有关访问令牌 here 和 here 的更多信息。
如果配置已正确应用,则配置的 AUTHORIZATION
标头将包含在对 git
命令访问的 github.com
IP 地址的每个 HTTPS 请求中。
如果您启用了双因素身份验证,请确保创建新的访问令牌而不是重新生成旧的访问令牌。
在我的情况下,这似乎不起作用。
在 2022 年使用 HTTPS 克隆私有存储库
如果存储库的维护者已在其私有库上授予开发人员访问您的权限,您需要先使用您的用户登录到 https://gitlab.com/users/sign_in收到邀请,系统会提示您更改密码,一旦您更改密码,您就可以成功克隆存储库,拉取并推送更改。
我可以创建一个 SSH 密钥并使用它来克隆存储库。该命令将仍然相同:
git clone git@github.com:DriveWealth/my-repo-name.git
git clone https://{personal access token}@github.com/Shuai1996/Root.git