[英]fatal: remote <Repository> already exists
作为为我工作的公司开发CI和CD流程的一部分,我正在构建一个命令行程序(OSX上的Bash脚本),
gitUserName = Joris <-- provided by the user, this is an example projectName = TestProject <-- provided by the user, this is an example git remote add $projectName "https://bitbucket.org/$gitUserName/$projectName.git"
运行此命令后,我在网站上的Bitbucket帐户上看不到存储库。 当我尝试重新运行此命令时,它说存储库已经存在。
另外,当我运行git push $projectName master
它说是fatal: repository 'https://bitbucket.org/Joris/TestProject.git/' not found
这种行为似乎不一致,并且我已经按照Atlassian指南进行了设置,因此我并不真正理解为什么它没有按预期那样添加存储库。 我的确意识到,我也可以只访问BitBucket网站并手动添加存储库,但是我的程序的目的在于,它会根据尽可能少的命令为用户生成一个完整的存储库。
git remote add
文档说,该命令将远程添加到本地存储库。 IMO,这个术语有点过时了。 最好说它向本地存储库添加了远程配置 (即,配置存储库以访问远程)。 这实际上并没有创建远程仓库。 必须单独完成。
在使用bitbucket的情况下,“正常”的事情是访问网站并通过其UI创建存储库。 因为您正在尝试使事情自动化,所以您不想这样做。 因此,在这种情况下,您将需要使用BitBucket REST API,该API在此处记录: https : //developer.atlassian.com/server/bitbucket/reference/rest-api/
“核心API”部分讨论了存储库和权限,因此您应该能够编写请求脚本,以(必要时)检查存储库是否存在,并进行设置(如果不存在)。 您只需为脚本提供一种发送HTTP请求并接收响应的方法。
在您的机器中:
创建仓库:
git init
添加分支:
git checkout -b branchX
git checkout -b branchY
git checkout -b branchZ
在Bitbucket网站上:
创建一个名为TestProject的新存储库,在设置和保存中允许用户Joris拥有写权限。 最后复制存储库的url,它必须类似于bitbucket.mydomain:port / nameofproject / testproject.git( 注意,这全部是小写的 )
在您的机器中:
git remote add origin theURL
git push origin *:*
git push origin --tags
最后一个是用于推送所有本地存储库的命令,这将覆盖远程存储库中的历史记录和标签,但是由于是新存储库,所以没关系。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.