我是一个三人小组;两个在本地工作,我正在服务器上工作。
我的同事设置了帐户,但给了我存储库的完全权限。
我在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
它说是最新的;然后当我推动时,它说没有快进。
我读到我需要指定分支,但是当我还指定repo URL时,我不知道如何在push语句中执行此操作:
git push https://bozdoz@bitbucket.org/path/repo.git
如果我的同事在附近并且可以输入他的密码,我能够拉动和推动。但这也是他作为推动的作者,而不是我。
如何以自己的用户名拉动并推送到repo分支?
答案 0 :(得分:69)
运行
git remote -v
并检查您的来源的网址是否在那里硬编码了您的同事的用户名。如果是这样,请用您自己的替换:
git remote set-url origin <url-with-your-username>
答案 1 :(得分:59)
我认为我应该分享我的解决方案,因为我无法在任何地方找到它,只能通过反复试验来解决。
我确实能够将存储库的所有权转移到a team on BitBucket。
不要 添加BitBuckets建议的远程网址:
git remote add origin https://username@bitbucket.org/teamName/repo.git
相反 ,添加没有用户名的远程网址:
git remote add origin https://bitbucket.org/teamName/repo.git
这样,当您从拉出或推送到回购时,会提示您输入用户名,然后提示您输入密码:团队中的每个人都可以使用自己的凭据访问它。这种方法仅适用于BitBucket上的团队,即使您可以管理单一所有者回购的用户权限。
答案 2 :(得分:12)
提示:
Password for 'https://theirusername@bitbucket.org':
建议您使用https而不是ssh。 SSH网址以git @开头,例如:
git@bitbucket.org:beginninggit/alias.git
即使您单独工作,只使用您拥有的单个仓库,操作:
git push
会导致:
Password for 'https://theirusername@bitbucket.org':
如果远程来源以https
开头。
使用以下方法检查遥控器:
git remote -v
遥控器取决于git clone
。如果你想使用ssh url使用ssh克隆repo,例如:
git clone git@bitbucket.org:user/repo.git
我建议您从git push
和git pull
开始使用私人仓库。
如果可行,你有两个由Lazy Badger建议的联系:
答案 3 :(得分:3)
嗯,这是BitBucket理念和工作流程的一部分:
即你不能(通常情况下)以自己的凭证进入外国回购。
您有两种可能的解决方案:
答案 4 :(得分:2)
你确定你没有推过SSH吗?如果你有的话,可以在bitbucket中查看与你的SSH密钥相关的电子邮件。
答案 5 :(得分:2)
答案 6 :(得分:0)
我不得不在这里合并一些好的答案!这对我有用:
git remote set-url origin 'https://bitbucket.org/teamName/repo.git'
最后,它总是会提示任何想要退出的人