在 git 和 bitbucket 中使用自己的用户名/密码

我是一个三人小组的成员,其中两人在本地工作,我负责服务器。

我的同事设置了帐户,但给了我存储库的全部权限。

我用 git 设置了我的用户名和电子邮件:

git config --global user.name "bozdoz"
git config --global user.email email@email.com

它们和我在 bitbucket. org 上的用户名和电子邮件一模一样。

但是当我拉或推到存储库时,它会在提示符中显示用户名:

Password for 'https://theirusername@bitbucket.org':

我能够得到一个提示后,我的密码尝试拉指出 URL 与我的用户名:

git pull https://bozdoz@bitbucket.org/path/repo.git

上面写的是最新信息,然后我按下去的时候,上面写的是“禁止快进”。

我读到我需要指定分支,但是我不知道如何在 push 语句中指定回购 URL:

git push https://bozdoz@bitbucket.org/path/repo.git

如果我的同事在附近,我可以拉和推,并且可以输入他的密码。但这也把他列为推动者,而不是我。

如何将回购分支作为我自己的用户名?

245800 次浏览

你确定你没有推倒 SSH?如果你有一个 SSH 密钥,也许可以检查一下与你的 SSH 密钥相关的电子邮件。

快跑

git remote -v

并检查你的网址是否有你同事的用户名硬编码,如果有,用你自己的网址替换:

git remote set-url origin <url-with-your-username>

这是 BitBucket 哲学和工作流程的一部分:

  • 存储库可能只有一个用户: owner
  • 对于普通帐户(最终用户)的协作,需要“分叉-拉请求”工作流

也就是说,你不能(在通常情况下)以自己的凭证进行国外回购。

你有两种可能的解决办法:

  1. “经典”BB-way: fork repo (归 仓库所有) ,进行更改,向原始回购发送拉请求
  2. 创建“ Team” ,添加用户帐户作为 Team 的成员,使 Team 成为知识库的所有者——在这种情况下,对于这个“共享中心”知识库,每个团队成员都可以根据自己的凭据推送——检查 东西知识库和 乌龟队,这个知识库的所有者,作为示例

提示:

Password for 'https://theirusername@bitbucket.org':

SSH urls 以 git@开头,例如:

git@bitbucket.org:beginninggit/alias.git

即使你独自工作,只拥有一份回购协议,操作:

git push

会导致:

Password for 'https://theirusername@bitbucket.org':

如果远程原点以 https开始。

检查你的遥控器:

git remote -v

远程取决于 git clone。如果你想使用 ssh 克隆回购使用它的 ssh 网址,例如:

git clone git@bitbucket.org:user/repo.git

我建议你从 git pushgit pull开始你的私人回购。

如果这种方法奏效,懒獾建议你选择两种乐趣:

  • 点播请求
  • 团队合作

我想我应该分享我的解决方案,因为我在任何地方都找不到它,只能通过反复试验才找到它。

我确实能够将存储库的所有权转移到 在 BitBucket 上的一个团队

不要 添加 BitBuckets 建议的远程 URL:

git remote add origin https://username@bitbucket.org/teamName/repo.git

取而代之的是 ,添加没有用户名的远程 URL:

git remote add origin https://bitbucket.org/teamName/repo.git

这样,当你从一个回购中抽取或者推送一个回购时,它会提示您输入用户名,然后输入密码: 团队中的每个人都可以通过他们自己的凭证访问它。这种方法只适用于 BitBucket 上的团队,即使您可以管理单一所有者回购的用户权限。

对于我自己的私人回购,我使用

Git@bitbucket. org: 用户名/blog.git

更换

Https://username@bitbucket.org/username/blog.git

我不得不在这里合并一些好的答案! 这对我很有效:

git remote set-url origin 'https://bitbucket.org/teamName/repo.git'

最终,它总是会促使任何想从中抽身的人

我遇到了这样一个问题,团队成员离开时,提取和拉取命令仍然指向他的帐户,所以我需要更新这个 URL,我按照以下步骤操作

  1. 运行此命令 git remote -v

  2. 它显示了用于获取和拉取的 URL,如下所示

       https://otherusername@bitbucket.org/repo.git (fetch)
    https://otherusername@bitbucket.org/repo.git (push)
    
  3. 更新此 URL 以包含我自己的用户名

     git remote set-url origin https://myusername@bitbucket.org/repo.git/
    
  4. 然后我运行这个命令来使用 cache 作为我的凭据助手

     git config --global credential.helper cache
    
  5. 接下来,当我运行 git get 时,它询问密码,我输入密码,它就被保存了,下次每当我执行提取和拉取操作时,它都会读取保存的凭据。

成交!