如何使用 SourceTree 将本地回购推送到 Bitbucket,而不必先在 Bitbucket 上创建回购?

有没有办法导入我的本地 git 回购到 SourceTree,并把他们推到我的 Bitbucket 帐户,有新的回购相同,我的本地回购建立在我的帐户?还是我得先在网上做个回购,然后再推进到那个阶段?Github 有一种方法可以直接从它的客户端发布您的本地回购协议,并且当您发布时它会自动创建它,但它只有有限的私人回购协议。我只是在做作业,所以没必要公开,所以我才用 bitbucket。

161212 次浏览

作为这个 视频说明,创建一个在线回购是通常的方式去。

源树发布说明提到了 SourceTree 1.5 + :

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

因此,虽然没有“发布”功能,您可以从 SourceTree 创建您的在线回购。

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

现在您可以在 SourceTree 中配置您的 Bitbucket、 Stash 和 GitHub 帐户,并立即查看这些服务上的所有存储库。轻松地克隆它们,在网上打开该项目,甚至不用离开 SourceTree 就可以在远程服务上创建新的存储库
您可以在 View > Show Hosted Repositories 下面的菜单中找到它,或者使用书签面板右下角的新按钮。

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

(在3-29-2019更新为使用 https 而不是 ssh,因此不需要使用 ssh 键)

看起来对于 BitBucket 来说,你必须首先在网上创建一个回购协议。使用来自 阿特拉斯人的指令,只需创建一个新的 BitBucket 存储库,将存储库 URL 复制到剪贴板,然后将该存储库作为一个新的远程存储库添加到本地存储库(完整的步骤如下) :

获取回购网址

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

使用 CLI 添加远程

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

使用 SourceTree 添加远程

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

旧方法: 创建和注册 SSH 密钥

(这个方法是如果您使用 ssh url 而不是 https url,后者看起来像 ssh://git@bitbucket.org/<username>/<reponame>.git。我建议只使用 https)

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

在源树中创建密钥:

  1. Tools > Options中,确保在 General选项卡下将 SSH Client:设置为 PuTTY/Plink
  2. 选择 Tools > 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) ,然后继续下一部分

在 BitBucket 中注册密钥

  1. 登录到您的 BitBucket帐户,并在右上角,单击您的个人资料图片,并单击 Settings
  2. 转到左侧工具条上的 SSH Keys选项卡
  3. 单击 Add SSH Key,为其命名,并粘贴在上一节的步骤4中复制的公钥

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

旁注: 使用 CLI 创建 SSH 密钥

请按照本教程操作

我用了这个,效果很好。 如果您的目录是

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

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

实际上有一个更简单的解决方案(只有 Mac 版本) ,只有四个步骤:

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

SourceTree Publish to Remote Screeshot

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

如果正确地维护提交和分支,GIT 可以很好地为版本控制和团队项目服务。
步骤1: 按照上面的回答 < br >

使用 cli 克隆你的本地回购协议

$cd [ path _ to _ repo ]
$git remote add source ssh://git@ bitbucket.org//.git
$git push-u source —— all < br >

第二步: 你可以按照上面的步骤来推/拉你的作品。简单的方法是使用 git gui。它提供了图形化界面,因此可以很容易地分段(添加)/取消分段、提交/取消提交和推送/拉取。初学者可以很容易地理解 git 过程。

$Git gui

(或)
步骤2: 如上所述。 CLI 代码将完成这项工作。

$git status
$git add [ file _ name ]
$git commit _ m“[ Comit message”]
$git push source master/Branch _ name

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

这里提供文档和 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 下,curl 可以从 Git Bash shell 获得。

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

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

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

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

该呼叫被记录为 在 API 参考中

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

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

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

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

从本地存储库开始创建新应用程序:

  1. 终端-> cd ~/文档(粘贴应用程序基目录路径)
  2. Terminal-> mkdir (使用)创建目录
  3. 终端-> cd (用目录更改目录)
  4. BitBucket A/C-> 在 bitBucket 帐户上创建存储库
  5. 使用相同的名称创建新的 Xcode 项目
  6. 终端-> git init (初始化空回购)
  7. 终端-> git 远程添加原点(例如 https://app@bitbucket.org/app/app.git)
  8. 终端-> git add。
  9. 终端-> git 状态
    1. 终端-> git commit-m“ IntialCommet”
    2. 终端-> git 推动原点主机

创建应用程序克隆存储库:

  1. Terminal-> mkdir (使用)创建目录
  2. 终端-> cd (用目录更改目录)
  3. 终端-> git 克隆(例如 https://app@bitbucket.org/app/app.git)
  4. 终端-> cd
  5. 终端-> git 状态(显示编辑/更新文件状态)
  6. 终端-> git 拉原始主机
  7. 终端-> git add。
  8. 终端-> git 推动原点主机

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

这使用 Github 作为访问 Bitbucket 的桥梁,这是由于缺乏直接从窗口 Sourcetree 应用程序发布引起的。

  1. 将本地回购加载到 Github 桌面应用程序中。
  2. 将回购作为私人(如果需要的话,为了保护隐私)从 Github 桌面应用程序发布到你的 Github 帐户中。
  3. 在 Bitbucket 网站开立个人/团队帐户
  4. 通过从 Github 导入创建一个新的 Bitbucket 回购。
  5. 删除 Github 中的回购。

完成此操作后,所有内容都将加载到 Bitbucket 中。现在,您的本地远程可能需要配置为指向 Bitbucket。

(至少是 Linux/WSL) 来自 bitbucket. org 的浏览器, 创建一个与本地回购相同名称的空回购, 遵循 bitbucket 提出的导入本地回购的说明(需要输入两个命令)。

如果在 SourceTree 中有一个本地存储库,只需访问 BitBucket 网站,在那里创建一个新的存储库,而不需要使用。Gitignore 文件,并在创建它之后,页面将显示以下命令来执行您想要执行的操作:

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

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