如何使用SourceTree将本地存储库推送到Bitbucket,而不是首先在bitbucket上创build存储库?

有没有办法将我的本地git仓库导入到SourceTree,并将它们推送到我的Bitbucket帐户,在我的帐户上创build与本地仓库相同的新仓库? 或者我必须首先做一个在线回购,并推动到? Github有一种直接从客户端发布本地回购的方法,它在发布时会自动创build,但它的私人回购是有限的。 我只是做功课,所以没有理由公开,所以我试图使用bitbucket。

似乎有可能将本地存储库“发布”到BitBucket。 使用Atlassian的指令,只需创build一个新的BitBucket存储库,将存储库url复制到剪贴板(在你的BitBucket仓库中,进入Actions> Clone,它会以git clone <repository url>的forms显示你的repo url) ),然后将该存储库添加为本地存储库的新远程文件:

使用CLI

  1. cd /path/to/my/repo
  2. git remote add origin ssh://git@bitbucket.org/<username>/<reponame>.git
  3. git push -u origin --all

使用SourceTree

  1. 储存库>添加远程…
  2. 粘贴BitBucket存储库url( git@bitbucket.org/<username>/<reponame>.git

更新:创build和注册SSH密钥

BitBucket非常适合私人回购,但您需要设置一个ssh密钥来授权您的计算机使用您的BitBucket帐户。 幸运的是,Sourcetree使它相对简单:

在SourceTree中创build密钥:

  1. 在“ Tools >“ Options ,确保“ General选项卡下的“ SSH Client:设置为“ PuTTY/Plink
  2. selectTools > Create or Import SSH Keys
  3. 在popup的窗口中,点击Generate并移动鼠标,给密钥生成器赋予随机性
  4. 你应该得到像下面的截图所示的东西。 将公钥(蓝色突出显示)复制到剪贴板

    油灰

  5. 点击Save private KeySave public key ,将您的密钥保存到您select的任何地方(例如分别保存到<Home Dir>/putty/ssk-key.ppk<Home Dir>/putty/ssh-key.pub ),然后再继续下一节

在BitBucket中注册密钥

  1. login到您的BitBucket帐户,并在右上angular,点击您的个人资料图片,然后单击Settings
  2. 转至左侧边栏上的SSH Keys选项卡
  3. 单击Add SSH Key ,给它一个名称,并粘贴您在上一节的第4步中复制的公钥

而已! 您现在应该能够推/拉到您的BitBucket私人回购。 你的密钥不仅适用于Git,许多服务使用ssh密钥来识别用户,最好的部分是你只需要一个。 如果您丢失了钥匙(例如更换电脑时),请按照以下步骤创build并注册一个新钥匙。

旁注:使用CLI创buildSSH密钥

只要按照这个教程

其实有一个更简单的解决scheme(只适用于Mac版本)。 只需四步:

  1. 右键单击存储库并select“发布到远程…”

SourceTree发布到远程Screeshot

  1. 下一个窗口会要求你发布(github,bitbucket等),然后你就完成了。
  2. 链接远程存储库

正如本video所示 ,首先在线创build回购是通常的方法。

SourceTree发行说明提及SourceTree 1.5+:

支持在Bitbucket中的团队/组织帐户下创build新的存储库。

所以,虽然没有“发布”function,你可以从SourceTree创build你的在线回购。

博客文章“ SourceTree for Windows 1.2在这里 ”(2013年9月)也提到:

现在,您可以在SourceTree中configurationBitbucket,Stash和GitHub帐户,并即时查看这些服务上的所有存储库。 轻松克隆它们,在Web上打开项目, 甚至在离开SourceTree的情况下在远程服务上创build新的存储库
您可以在View> Show Hosted Repositories下的菜单中find它,或使用书签面板右下方的新button。

files/2013/09/hostedrepowindow.png

我用这个,它为我工作得很好。 如果你的目录是

“回购”和你的项目是“你好”在那里复制项目

 cd /path/to/my/repo 

初始化您的目录

 git init 

阶段的项目

 git add hello 

提交项目

 git commit 

使用您在Bitbucket中使用的电子邮件和用户名添加configuration

 git config --global user.email git config --global user.name 

为该项目添加评论

 git commit -m 'comment' 

现在推动项目

 git push origin master 

检查出主人

 git checkout master 

Bitbucket支持一个REST API,您可以使用它来以编程方式创buildBitbucket存储库。

文档和cURL示例可在这里: https : //confluence.atlassian.com/bitbucket/repository-resource-423626331.html#repositoryResource-POSTanewrepository

 $ 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" }' 

在Windows下,可以从Git Bash shell获得curl。

使用这种方法,您可以轻松地创build一个脚本,从本地git服务器导入许多回购到Bitbucket。

如果提交和分支机构得到正确维护,GIT可以很好地用于版本控制和团队项目。
步骤1:使用上面的答案中提到的cli克隆您的本地回购

$ cd [path_to_repo]
$ git remote add origin ssh://git@bitbucket.org//.g​​it
$ git push -u origin –all

步骤2:您可以按照上述步骤推/拉您的作品。 简单的方法是使用git gui。 它提供了graphics界面,以便轻松地进行(添加)/取消,提交/取消提交和推/拉。 初学者可以很容易地理解git过程。

$ git gui

(要么)
第二步:如上所述。 Cli代码将完成这项工作。

$ git状态
$ git add [file_name]
$ git commit _m“[Comit message”]“
$ git push origin master / branch_name

作为Joe答案的更新,您可以使用API​​编写存储库的创build脚本,只有我需要的API调用是不同的。 这可能是因为我们使用的是bitbucket服务器,而不是bitbucket云。

要在我们的服务器上的项目中创build一个新的回购,我使用:

 curl -X POST -v -u USER:PASSWORD -H "Content-Type: application/json" \ http://SERVER/rest/api/1.0/projects/PROJECTNAME/repos/ \ -d '{"scmid":"git", "name":"REPONAME"}' 

其中USERPASSWORDSERVERPROJECTNAMEREPONAME当然是所希望/要求的值。

该调用logging在API参考中 。

/rest/api/1.0/projects/{projectKey}/repos

创build一个新的存储库。 需要创build该存储库的现有项目。 唯一使用的参数是name和scmId。

经过身份validation的用户必须具有PROJECT_ADMIN权限才能调用此资源的上下文项目。