如何使用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
-
cd /path/to/my/repo
-
git remote add origin ssh://git@bitbucket.org/<username>/<reponame>.git
-
git push -u origin --all
使用SourceTree
- 储存库>添加远程…
- 粘贴BitBucket存储库url(
git@bitbucket.org/<username>/<reponame>.git
)
更新:创build和注册SSH密钥
BitBucket非常适合私人回购,但您需要设置一个ssh密钥来授权您的计算机使用您的BitBucket帐户。 幸运的是,Sourcetree使它相对简单:
在SourceTree中创build密钥:
- 在“
Tools
>“Options
,确保“General
选项卡下的“SSH Client:
设置为“PuTTY/Plink
” - select
Tools
>Create or Import SSH Keys
- 在popup的窗口中,点击
Generate
并移动鼠标,给密钥生成器赋予随机性 -
你应该得到像下面的截图所示的东西。 将公钥(蓝色突出显示)复制到剪贴板
- 点击
Save private Key
并Save public key
,将您的密钥保存到您select的任何地方(例如分别保存到<Home Dir>/putty/ssk-key.ppk
和<Home Dir>/putty/ssh-key.pub
),然后再继续下一节
在BitBucket中注册密钥
- login到您的BitBucket帐户,并在右上angular,点击您的个人资料图片,然后单击
Settings
- 转至左侧边栏上的
SSH Keys
选项卡 - 单击
Add SSH Key
,给它一个名称,并粘贴您在上一节的第4步中复制的公钥
而已! 您现在应该能够推/拉到您的BitBucket私人回购。 你的密钥不仅适用于Git,许多服务使用ssh密钥来识别用户,最好的部分是你只需要一个。 如果您丢失了钥匙(例如更换电脑时),请按照以下步骤创build并注册一个新钥匙。
旁注:使用CLI创buildSSH密钥
只要按照这个教程
其实有一个更简单的解决scheme(只适用于Mac版本)。 只需四步:
- 右键单击存储库并select“发布到远程…”
- 下一个窗口会要求你发布(github,bitbucket等),然后你就完成了。
- 链接远程存储库
- 推
正如本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。
我用这个,它为我工作得很好。 如果你的目录是
“回购”和你的项目是“你好”在那里复制项目
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//.git
$ 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"}'
其中USER
, PASSWORD
, SERVER
, PROJECTNAME
和REPONAME
当然是所希望/要求的值。
该调用logging在API参考中 。
/rest/api/1.0/projects/{projectKey}/repos
创build一个新的存储库。 需要创build该存储库的现有项目。 唯一使用的参数是name和scmId。
经过身份validation的用户必须具有PROJECT_ADMIN权限才能调用此资源的上下文项目。