如何在不首先在bitbucket上创建repo的情况下使用SourceTree将本地仓库推送到Bitbucket?

时间:2014-06-18 19:58:47

标签: git bitbucket

有没有办法将我的本地git repos导入SourceTree并将它们推送到我的Bitbucket帐户,在我的帐户上创建与我的本地回购相同的新回购?或者我是否必须首先在线制作回购并推送到那个? Github有一种直接从它的客户端发布本地存储库的方法,它会在您发布时自动创建,但它的私有存储库有限。我只是在做作业所以没有理由让它公开,所以我为什么要尝试使用bitbucket。

11 个答案:

答案 0 :(得分:138)

(更新于3-29-2019以使用https代替ssh,因此您不需要使用ssh密钥)

对于BitBucket来说,你必须首先在线创建一个回购。使用Atlassian中的说明,只需创建一个新的BitBucket存储库,将存储库URL复制到剪贴板,然后将该存储库作为新的远程存储库添加到本地存储库(以下完整步骤):

获取回购网址

  1. 在您的BitBucket回购中,选择"克隆"在右上角
  2. 选择" HTTPS"而不是" SSH"在对话框的右上角
  3. 它应以git clone <repository url>
  4. 的形式显示您的回购网址

    使用CLI添加远程

    1. cd /path/to/my/repo
    2. git remote add origin https://bitbucket.org/<username>/<reponame>.git
    3. git push -u origin --all
    4. 使用SourceTree添加远程

      1. 存储库&gt;添加远程...
      2. 粘贴BitBucket存储库URL(https://bitbucket.org/<username>/<reponame>.git

      3. 旧方法:创造&amp;注册SSH密钥

        (这种方法是使用ssh网址而不是https网址,看起来像ssh://git@bitbucket.org/<username>/<reponame>.git。我建议只使用https)

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

        在SourceTree中创建密钥:

        1. Tools&gt; Options中,确保SSH Client:标签下的PuTTY/Plink设置为General
        2. 选择Tools&gt; Create or Import SSH Keys
        3. 在弹出窗口中,点击Generate并移动鼠标以随机添加密钥生成器
        4. 你应该得到类似下面截图中显示的内容。将公钥(以蓝色突出显示)复制到剪贴板

          putty

        5. 点击Save private KeySave public key将您的密钥保存到您选择的任何位置(例如分别转到<Home Dir>/putty/ssk-key.ppk<Home Dir>/putty/ssh-key.pub),然后再转到下一部分
        6. 在BitBucket中注册密钥

          1. 登录到您的BitBucket帐户,点击右上角的个人资料图片,然后点击Settings
          2. 转到左侧边栏的SSH Keys标签
          3. 点击Add SSH Key,为其命名,然后粘贴您在上一部分第4步中复制的公钥
          4. 那就是它!您现在应该能够推送/拉入您的BitBucket私人回购。您的密钥也不仅仅适用于Git,许多服务使用ssh密钥来识别用户,最好的部分是您只需要一个。如果您丢失了密钥(例如更换计算机时),只需按照步骤创建并注册新密钥即可。

            旁注:使用CLI创建SSH密钥

            Just follow this tutorial

答案 1 :(得分:23)

实际上有一个更简单的解决方案(仅适用于Mac版本)。只需四步:

  1. 右键单击存储库并选择“发布到远程...”
  2. SourceTree Publish to Remote Screeshot

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

答案 2 :(得分:10)

正如video illustrates那样,首先在线创建回购是通常的方法。

SourceTree Release Notes确实提到了SourceTree 1.5 +:

  

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

所以虽然没有&#34;发布&#34;功能,您可以从SourceTree创建您的在线仓库。

博客文章&#34; SourceTree for Windows 1.2 is here&#34; (2013年9月)也提到:

  

现在,您可以在SourceTree中配置Bitbucket,Stash和GitHub帐户,并立即查看这些服务上的所有存储库。轻松克隆它们,在Web上打开项目,甚至在远程服务上创建新存储库,而无需离开SourceTree
  您可以在View&gt;下的菜单中找到它。显示托管存储库,或使用书签面板右下角的新按钮。

http://blog.sourcetreeapp.com/files/2013/09/hostedrepowindow.png

答案 3 :(得分:3)

我用过这个,对我来说效果很好。 如果您的目录是

  

“回购”    并且您的项目是“hello”将项目复制到那里

cd /path/to/my/repo

初始化目录

git init

暂存项目

git add hello

提交项目

git commit

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

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

为项目添加评论

git commit -m 'comment'

立即推送项目

git push origin master

退出主人

git checkout master

答案 4 :(得分:2)

Bitbucket支持可用于以编程方式创建Bitbucket存储库的REST API。

此处提供的文档和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。

使用此方法,您可以轻松创建一个脚本,将许多repos从本地git服务器导入Bitbucket。

答案 5 :(得分:1)

设置Bitbucket存储库(使用Mac的命令行)

从本地重新开始创建新的应用程序:

  1. 终端 - &gt; cd~ / Documents(粘贴您的APPLICATION基本目录路径)
  2. 终端 - &gt; mkdir(创建目录)
  3. 终端 - &gt; cd(用目录更改目录)
  4. BitBucket A / C - &gt;在bitBucket帐户上创建存储库
  5. Xcode - &gt;创建具有相同名称的新xcode项目
  6. 终端 - &gt; git init(initilize empty repo)
  7. 终端 - &gt; git remote add origin(例如https://app@bitbucket.org/app/app.git
  8. 终端 - &gt; git add。
  9. 终端 - &gt; git状态
    1. 终端 - &gt; git commit -m“IntialCommet”
    2. 终端 - &gt; git push origin master
  10. 创建APPLICATION clone repository:

    1. 终端 - &gt; mkdir(创建目录)
    2. 终端 - &gt; cd(用目录更改目录)
    3. 终端 - &gt; git clone(例如https://app@bitbucket.org/app/app.git
    4. 终端 - &gt; cd
    5. 终端 - &gt; git status(显示编辑/更新文件状态)
    6. 终端 - &gt; git pull origin master
    7. 终端 - &gt; git add。
    8. 终端 - &gt; git push origin master

答案 6 :(得分:1)

如果你在 SourceTree 有本地仓库,只需到 BitBucket 网站,在那里新建一个仓库,不带 .gitignore 文件,创建后,页面会显示以下命令来做你想做的做:

git remote add origin https://[username]@bitbucket.org/[username]/[reponame].git
git push -u origin master

您可以在本地 SourceTree 存储库所在的文件夹中使用 Git Bash 并粘贴这两个命令。现在,当您从 SourceTree 推送提交时,它也会被推送到在线 BitBucket 存储库。

答案 7 :(得分:0)

如果正确维护提交和分支,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。它提供了图形界面,因此可以轻松进行(添加)/取消暂存,提交/取消提交和推/拉。初学者可以很容易地理解git过程。

  

$ git gui

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

  

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

答案 8 :(得分:0)

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

要在我们服务器上的项目中创建一个新的repo,我使用了:

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当然是所需/所需的值。

电话会记录in the API reference

  

/rest/api/1.0/projects/ {projectKey} /回购

     

创建新存储库。需要一个将在其中创建此存储库的现有项目。将使用的唯一参数是name和scmId。

     

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

答案 9 :(得分:0)

适用于Windows用户的另一种解决方案:

这将Github用作通向Bitbucket的桥梁,导致缺少直接从Windows Sourcetree应用发布的问题。

  1. 将本地存储库加载到Github桌面应用程序中。
  2. 将回购作为私有(出于私密性,如果需要的话)从Github桌面应用发布到您的Github帐户中。
  3. 在Bitbucket网站上打开您的个人/团队帐户
  4. 通过从Github导入来创建新的Bitbucket存储库。
  5. 在Github中删除仓库。

完成后,所有内容都会加载到Bitbucket中。您的本地遥控器可能需要配置为现在指向Bitbucket。

答案 10 :(得分:0)

(至少Linux / WSL) 在bitbucket.org的浏览器中, 创建一个与您的本地存储库同名的空存储库, 遵循bitbucket提出的导入本地存储库(输入两个命令)的说明。