有没有办法导入我的本地 git 回购到 SourceTree,并把他们推到我的 Bitbucket 帐户,有新的回购相同,我的本地回购建立在我的帐户?还是我得先在网上做个回购,然后再推进到那个阶段?Github 有一种方法可以直接从它的客户端发布您的本地回购协议,并且当您发布时它会自动创建它,但它只有有限的私人回购协议。我只是在做作业,所以没必要公开,所以我才用 bitbucket。
作为这个 视频说明,创建一个在线回购是通常的方式去。
源树发布说明提到了 SourceTree 1.5 + :
支持在 Bitbucket 的团队/组织帐户下创建新的存储库。
因此,虽然没有“发布”功能,您可以从 SourceTree 创建您的在线回购。
博客文章“ Windows 1.2的 SourceTree 在这里”(2013年9月)也提到:
现在您可以在 SourceTree 中配置您的 Bitbucket、 Stash 和 GitHub 帐户,并立即查看这些服务上的所有存储库。轻松地克隆它们,在网上打开该项目,甚至不用离开 SourceTree 就可以在远程服务上创建新的存储库。 您可以在 View > Show Hosted Repositories 下面的菜单中找到它,或者使用书签面板右下角的新按钮。
(在3-29-2019更新为使用 https 而不是 ssh,因此不需要使用 ssh 键)
看起来对于 BitBucket 来说,你必须首先在网上创建一个回购协议。使用来自 阿特拉斯人的指令,只需创建一个新的 BitBucket 存储库,将存储库 URL 复制到剪贴板,然后将该存储库作为一个新的远程存储库添加到本地存储库(完整的步骤如下) :
获取回购网址
git clone <repository url>
使用 CLI 添加远程
cd /path/to/my/repo
git remote add origin https://bitbucket.org/<username>/<reponame>.git
git push -u origin --all
使用 SourceTree 添加远程
https://bitbucket.org/<username>/<reponame>.git
(这个方法是如果您使用 ssh url 而不是 https url,后者看起来像 ssh://git@bitbucket.org/<username>/<reponame>.git。我建议只使用 https)
ssh://git@bitbucket.org/<username>/<reponame>.git
BitBucket 非常适合私人回购,但是你需要设置一个 ssh 密钥来授权你的计算机使用你的 BitBucket 帐户。幸运的是,Sourcetree 的做法相对简单:
在源树中创建密钥:
Tools
Options
General
SSH Client:
PuTTY/Plink
Create or Import SSH Keys
Generate
您应该得到类似于下面的截图所示的内容。将公钥(蓝色突出显示)复制到剪贴板
Save private Key
Save public key
<Home Dir>/putty/ssk-key.ppk
<Home Dir>/putty/ssh-key.pub
在 BitBucket 中注册密钥
Settings
SSH Keys
Add SSH Key
就是这样!你现在应该能够推/拉到你的 BitBucket 私人回购。您的密钥也不仅仅适用于 Git,许多服务使用 ssh 密钥来识别用户,最好的部分是您只需要一个。如果你丢失了你的密钥(例如在更换电脑时) ,只需按照下面的步骤创建和注册一个新的。
旁注: 使用 CLI 创建 SSH 密钥
请按照本教程操作
我用了这个,效果很好。 如果您的目录是
“回购” 而你的项目是“你好”复制那里的项目
初始化目录
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 版本) ,只有四个步骤:
如果正确地维护提交和分支,GIT 可以很好地为版本控制和团队项目服务。 步骤1: 按照上面的回答 < br >
$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"}'
其中 USER、 PASSWORD、 SERVER、 PROJECTNAME和 REPONAME当然是理想的/必需的值。
USER
PASSWORD
SERVER
PROJECTNAME
REPONAME
该呼叫被记录为 在 API 参考中。
/rest/api/1.0/Projects/{ projectKey }/repos 创建一个新的存储库。需要在其中创建此存储库的现有项目。将使用的唯一参数是 name 和 scmId。 经过身份验证的用户必须具有 PROJECT _ ADMIN 权限,才能让上下文项目调用此资源。
/rest/api/1.0/Projects/{ projectKey }/repos
创建一个新的存储库。需要在其中创建此存储库的现有项目。将使用的唯一参数是 name 和 scmId。
经过身份验证的用户必须具有 PROJECT _ ADMIN 权限,才能让上下文项目调用此资源。
Windows 用户的另一种解决方案:
这使用 Github 作为访问 Bitbucket 的桥梁,这是由于缺乏直接从窗口 Sourcetree 应用程序发布引起的。
完成此操作后,所有内容都将加载到 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 存储库。