77

是否可以使用命令行 Git 在 Bitbucket 中创建新的存储库?我尝试了以下方法:

git clone --bare https://username@bitbucket.org/username/new_project.git

我收到这条消息:

克隆到裸存储库“new_project.git”...
致命:https://username@bitbucket.org/username/new_project.git/info/refs未找到:您是否在服务器上运行了 git update-server-info?

不用去网络应用程序就可以做到这一点。

4

8 回答 8

94

您可以使用 Bitbucket REST API 和 cURL。例如:

curl --user login:pass https://api.bitbucket.org/1.0/repositories/ \
--data name=REPO_NAME

创建名为REPO_NAME.

有关详细信息,请参阅使用 Bitbucket REST API

更新

对于 Bitbucket V2,请参阅POST a new repo

于 2012-12-09T15:24:55.583 回答
15

https://confluence.atlassian.com/bitbucket/repository-resource-423626331.html

$ curl -X POST -v -u username:password -H "Content-Type: application/json" \
  https://api.bitbucket.org/2.0/repositories/teamsinspace/new-repository4 \
  -d '{"scm": "git", "is_private": "true", "fork_policy": "no_public_forks" }'
于 2015-11-11T17:38:18.487 回答
13

这是@hannesr 的脚本,稍作调整以接受来自提示的输入:

# startbitbucket - creates remote bitbucket repo and adds it as git remote to cwd
function startbitbucket {
    echo 'Username?'
    read username
    echo 'Password?'
    read -s password  # -s flag hides password text
    echo 'Repo name?'
    read reponame

    curl --user $username:$password \
         https://api.bitbucket.org/1.0/repositories/ \
         --data name=$reponame \
         --data is_private='true'
    git remote add origin git@bitbucket.org:$username/$reponame.git
    git push -u origin --all
    git push -u origin --tags
}

你应该把它放在你的.bashrcor.bash_aliases中。

于 2014-09-09T19:47:57.720 回答
4

我对上面 script 的@pztrick做了一些修改。这个新脚本应该可以正常工作,但它使用更新的 2.0 API:

function startbitbucket {
    echo 'Username?'
    read username
    echo 'Password?'
    read -s password  # -s flag hides password text
    echo 'Repo name?'
    read reponame

    curl -X POST -v -u $username:$password  -H "Content-Type: application/json" \
  https://api.bitbucket.org/2.0/repositories/$username/$reponame \
  -d '{"scm": "git", "is_private": "true", "fork_policy": "no_public_forks" }'

    git remote add origin git@bitbucket.org:$username/$reponame.git
    git push -u origin --all
    git push -u origin --tags
}

您可以将它放在您的 .bashrc 或 .bash_aliases 文件中(就像原始脚本一样)。

请注意,它还会将其创建为私人仓库。您可以将 "is_private": "true" 更改为 "is_private": "false" 以使其成为公共仓库。

于 2018-11-03T01:56:41.643 回答
2

我制作了一个快速的 shell 脚本,负责在当前工作目录中创建本地 git,执行“初始提交”,然后创建 bitbucket 存储库(使用 Mareks curl 方法),最后完成推送初始所需的所有操作致力于比特桶。

(请注意,这仅适用于私人回购,但正如 Patrick 所述,这很容易改变)

像这样使用它:

fillbucket <user> <password> <reponame>

代码在http://bitbucket.org/hannesr/fillbucket

于 2014-02-26T13:28:41.457 回答
2

cURL 的最佳答案对我来说效果不佳,所以我最终在 Python 中使用Bitbucket-API完成了它。这是关于repository.create()调用的文档。

安装:

pip install bitbucket-api

Python:

>>> from bitbucket.bitbucket import Bitbucket
>>> bb = Bitbucket(username, password)
>>> bb.repository.create('awesome-repo', scm='git', private=True)
(True, {u'scm': ...})
于 2015-08-28T06:10:47.703 回答
2
  • 如果您使用的是 Bitbucket Cloud(bitbucket.org),您可以使用 Bitbucket REST API 和 cURL,还可以为存储库指定项目密钥,您可以使用:-

curl -X POST -v -u $username:$password "https://api.bitbucket.org/2.0/repositories/$username/$reponame" -H "Content-Type: application/json" -d '{"scm": "git", "is_private": "true", "fork_policy": "no_public_forks", "project": {"key": "'$project_key'"}}'

这将在特定项目下创建一个存储库。

  • 如果您想在 Bitbucket 服务器 V1.0 中创建存储库,则可以使用 REST API。该命令如下所示:-

curl -u $username:$password -X POST -H "Content-Type:application/json" -d '{"name": "'$reponame'","scmId": "git","forkable": true}' http://localhost:7990/rest/api/1.0/projects/${project_key,,}/repos

您可以提及您的公司网址(例如 - birbucket.xyz.com)来代替 localhost:7990。

有关 bitbucket 服务器的更多信息,请参阅使用 Bitbucket 服务器 REST API

于 2021-03-04T05:14:31.877 回答
0

@hannester 我分叉并稍微修改了您的脚本。

您的远程 URL 不正确(您在脚本中留下了用户名)。将其修改为在脚本文件中包含用户名和密码。

并重命名,并说明如何在此处添加到路径:

https://bitbucket.org/oscarmorrison/newgit

于 2014-08-12T10:58:49.723 回答