无法使用个人访问令牌访问私有Git Repo

k4aesqcs  于 2023-02-28  发布在  Git
关注(0)|答案(3)|浏览(166)

直到最近我才使用过私有Git存储库。我在从本地机器访问私有存储库时遇到了问题。上个月,GitHub更新了访问私有存储库的方式。现在你不能使用你的用户名和密码。当我尝试使用个人访问令牌时,我收到了以下消息:remote: Repository not found. fatal: repository 'https://github.com/[Org]/[Repo].git/' not found.
我已经初始化了我的本地仓库。现在我只需要把它连接到我的私有远程仓库。我想使用我的个人访问令牌而不是ssh。
下面是我在Windows上使用的命令:

git remote add origin https://[UserName]:[Token]@github.com/[Org]/[Repo].git
git add .
git commit -m "Commit" ---> Output: On branch master nothing to commit, working tree clean
git push --set-upstream origin master ---> Output: Gives me the error
pgpifvop

pgpifvop1#

我不认为你说的“上个月,GitHub更新了你访问私人仓库的方式。现在,你不用密码,而是使用个人访问令牌。“是真的。你可以这么做,对吗?
要使用该令牌,请按如下方式添加您的存储库URL:

git remote add origin https://[Token]@github.com/[Org]/[Repo].git
cig3rfwq

cig3rfwq2#

所以我的问题主要是要确保你被分配的角色被允许推送到私有存储库。我和我的团队假设管理员可以推送,但事实似乎并非如此。另外,你可以使用以下两种方法之一作为你的源:
https://[Token]@github.com/[Org]/[Repo].git

https://[UserName]:[Token]@github.com/[Org]/[Repo].git

pftdvrlh

pftdvrlh3#

一个稍微不同的答案对我起作用了。我发现我突然无法推送到我的一个回购协议,但仍然可以推送到所有其他回购协议,没有任何问题。我认为这是我的令牌或我的个人权限有问题,但我确认我有管理+写入权限,而且我正在使用的令牌在有问题的回购协议上有权限并且没有过期。我甚至认为可能有什么东西在本地损坏了,或者更新的git可能坏了什么东西,但我找不到任何错误。最后,我检查了问题repo上的远程URL,它是https://github.com/<my_user>/<my_problem_repo>.git。然后我检查了一个我仍然可以推到的repo上的远程URL,而且是git@github.com:<my_user>/my_repo_that_I_can_push_to>.git。我使用git remote set-url origin <url>将问题存储库中的远程URL更改为git@github,最后能够再次推送到它。
我相信我"突然"无法推送到那个repo的原因是我最初使用的是密码验证,所以它使用的httpsURL没有问题,但是自从我很久以前推送到那个repo后,git就不再使用密码验证了(?),并且我在系统的GITHUB_ACCESS_TOKENenv变量中切换到使用PAT进行身份验证。(你需要使用git@github URL或者 * 也许?* SSH URL)我一定是更新了其他仓库的远程URL,但忘记更新这个,这就解释了为什么我可以推送到除一个以外的所有仓库。
如果有人因为无法推送到一个或几个存储库而遇到这个问题,请检查您的远程URL是否是git remote get-url remote支持PAT(而不是HTTPS)的格式之一。

相关问题