有没有办法将我的本地git repos导入SourceTree并将它们推送到我的Bitbucket帐户,在我的帐户上创建与我的本地回购相同的新回购?或者我是否必须首先在线制作回购并推送到那个? Github有一种直接从它的客户端发布本地存储库的方法,它会在您发布时自动创建,但它的私有存储库有限。我只是在做作业所以没有理由让它公开,所以我为什么要尝试使用bitbucket。
答案 0 :(得分:138)
(更新于3-29-2019以使用https代替ssh,因此您不需要使用ssh密钥)
对于BitBucket来说,你必须首先在线创建一个回购。使用Atlassian中的说明,只需创建一个新的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网址而不是https网址,看起来像ssh://git@bitbucket.org/<username>/<reponame>.git
。我建议只使用https)
BitBucket非常适合私人回购,但您需要设置一个ssh密钥来授权您的计算机使用您的BitBucket帐户。幸运的是Sourcetree让它变得相对简单:
在SourceTree中创建密钥:
Tools
&gt; Options
中,确保SSH Client:
标签下的PuTTY/Plink
设置为General
Tools
&gt; 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
,为其命名,然后粘贴您在上一部分第4步中复制的公钥那就是它!您现在应该能够推送/拉入您的BitBucket私人回购。您的密钥也不仅仅适用于Git,许多服务使用ssh密钥来识别用户,最好的部分是您只需要一个。如果您丢失了密钥(例如更换计算机时),只需按照步骤创建并注册新密钥即可。
旁注:使用CLI创建SSH密钥
答案 1 :(得分:23)
实际上有一个更简单的解决方案(仅适用于Mac版本)。只需四步:
答案 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;下的菜单中找到它。显示托管存储库,或使用书签面板右下角的新按钮。
答案 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)
答案 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//.git
$ 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"}'
其中USER
,PASSWORD
,SERVER
,PROJECTNAME
和REPONAME
当然是所需/所需的值。
电话会记录in the API reference。
/rest/api/1.0/projects/ {projectKey} /回购
创建新存储库。需要一个将在其中创建此存储库的现有项目。将使用的唯一参数是name和scmId。
经过身份验证的用户必须具有PROJECT_ADMIN权限才能让上下文项目调用此资源。
答案 9 :(得分:0)
适用于Windows用户的另一种解决方案:
这将Github用作通向Bitbucket的桥梁,导致缺少直接从Windows Sourcetree应用发布的问题。
完成后,所有内容都会加载到Bitbucket中。您的本地遥控器可能需要配置为现在指向Bitbucket。
答案 10 :(得分:0)
(至少Linux / WSL) 在bitbucket.org的浏览器中, 创建一个与您的本地存储库同名的空存储库, 遵循bitbucket提出的导入本地存储库(输入两个命令)的说明。