Bitbucket版本控制入门

最近在做一个私人的项目,想寻找个比较靠谱的私人版本控制工具。一开始是就想到了github,但是一想到github上的私人项目是要收费的,想想就放弃了。最后敲定使用了BitBucket。

BitBucket和github类似,性能上也很不错,最主要的是它提供了1G的免费空间。这对于我这种私人项目来说最合适不过了。这篇文章介绍一下如何入门使用BitBucket做git的版本管理。

1. 首先注册BitBucket用户(可能需要翻墙).

通过这个注册地址:https://bitbucket.org/,可以注册BitBucket的个人账号。注册使用邮箱,并且需要进行验证。

2.用户界面介绍

bitbucket一开始登录之后是这样的:


屏幕快照.png

讲道理,我觉得这界面比起github不会差多少。
BitBucket默认使用英文,对于英文不是很好的同学也没事,进入设置->语言中可以设置成中文界面。(偷笑一个,真友好)。

![
屏幕快照 png

屏幕快照 png

屏幕快照.png

回到主界面,看到左边的菜单中,对于个人的项目中,包含了概述、项目、仓库、拉取请求、片段、问题这几个大类。


屏幕快照 2017-12-11 下午8.26.18.png
  • 概述

    这里讲展示个人账号中所有的所有相关的仓库和面板。

  • 仓库

    不多说了,大家懂。

  • 项目

    这里展示所有的个人参与的项目。项目需要团队才能创建。

  • 拉取请求

    其他人可以拉取你的项目,但是需要经过你的同意。

  • 问题

    冲突之类的问题。

  • 片段

    我们可以将一部分代码以片段的形式存在bitbucket。

3.创建个人远程仓库,并链接本地仓库

  • 创建个人远程仓库
    仓库需要依赖于个人或者团队来创建。 默认依赖个人。


    屏幕快照 png

    创建仓库的时候,我们可以选择仓库的所有者。并且能够指定是否是一个私有仓库。另外还能指定使用的版本控制系统,默认的bitbuket支持Git。在高级设置中,还能看到一些其他的功能,比如:选择仓库存储的代码语言。这里我创建了一个H5的代码仓库test。


    屏幕快照 png

在使用仓库之前,我们先要开启这个仓库。bitbucket提供了两大类开始方式: 轻松入门和命令行入门。
轻松入门中,我们可以创建一个README文件来描述这个仓库,或者使用一个gitignore文件来对文件的控制做一定的忽略。
在命令行入门中。我们可使用一个已经存在的仓库进行创建,当然也可以使用空的项目创建。
这里一般建议直接使用一个README文件来开启。创建完之后,就可以是使用这个仓库了。我们还可邀请其他人一起来对这个仓库进行读写等。


屏幕快照 png

在图中的方框中,就是这个仓库在BitBucket的仓库地址,我们创建远程仓库的时候,使用的就是这个地址。

  • 创建和远程仓库映射的本地仓库
    有两种方式可以将远程仓库映射到本地的仓库。
    <1> 从BitBucket的仓库直接检出。
    在BitBucket的仓库中,我们可以直接找到仓库的检出选项:


    检出

    屏幕快照 png

    在打开本地的文件夹。看到文件中多一个.git文件和一个README文件(这是我们在开启远程仓库的时候创建的)。说明映射关系已经建立。
    我们不妨打开SourceTree(这是可视化的git界面操作工具)查看一下。



    这里可以看到,本地仓库中已经有了这个test 仓库。
    屏幕快照 .png

    这样检出之后选一个合适的本地文件夹,就已经跟这个远程仓库有了映射关系。

<2> 先创建本地仓库,然后将本地仓库的内容推送到远程仓库。
一个新建在本地的文件夹可以做为一个本地的仓库,同样的,使用一个已经存在的项目,也可以作为一个本地仓库,下面我就一个已经存在的项目作为本地仓库范例。比如以我的一个文件夹demo作为本地仓库。

屏幕快照.png

在使用之前,我们先打开SourceTree(这是可视化的git界面操作工具)
屏幕快照.png

界面上有两个本地仓库了。我们点击新建,看到有好几个不同的选项,基本意思看看就明白了,我们选择使用添加已经存在的本地仓库
屏幕快照 2017-12-12 上午8.58.33.png

这会弹出一个文件夹选择器,我们只需将之前的demo选中即可创建好这个本地仓库,同时能够选择远程仓库,这时候只需要选择对应的账号即可。


再看看远程仓库,已经出现了一个demo仓库。这时候本地和远程仓库就都完成了。


4.创建一个团队,并添加项目

点击左侧加号:


屏幕快照 .png


选择团队:

团队成功之后会有界面:



我们可以直接在团队中创建仓库,同时也可以创建项目。

目前这个团队中没有任何的项目,我们可以新建。


在项目创建完成之后,我们可以在项目中添加仓库了。


这样我们就创建了一个团队项目了。

5.为团队添加成员和设置成员的权限身份

在BitBucket的主界面中,我们可以选择不同的团队进行操作。

这里我们选择刚刚创建的团队 -- MyTestDemoTeam。也即是我们进入这个团队的内部。

选择成员,可以看到目前里面只有我自己一个成员。
点击右上角的成员管理,进入到成员管理界面。在这里我们可以添加其他成员或者其他的团队了。


点击添加成员:

这里可以设置成员的身份- 管理者or开发者。
我这里将Tom设置成开发者,也就是说他不具备管理这个团队的权限。但是可以将代码检出和提交。
最后回到成员界面:

我们在这里看到Tom了,说明添加成功。
接下来我们再进入到团队管理界面:
我们看到这里一共有两个用户组,分别是AdministratorsDevelopers.这是两个默认的用户组,之前我就是 把Tom加入到Developers用户组了。
我们也可以自己添加其他的用户组。

如何添加其实很简单。有兴趣的可以试试。
如果要删除一个用户组的话,只需要点击用户组的右边的小小的X按钮。

现在先我们进入Developers用户组,看看如何设置用户组的权限的:


这里会直观的展示该用户组拥有的权限,比如现在的Developers用户拥有创建仓库和默认的写入权限。我们进入到编辑界面中可以对用户组的权限进行更改:


这里就是设置用户的权限了。设置用户组的权限之后,所有被包含在这个用户组的成员(比如Tom)都将受到这个用户的权限的限制。

6. BitBucket的实际开发使用

在配置好这些功能之后就可以使用BitBucket进行版本控制了。BitBucket包含了最基本的提交、推送、分支处理、合并分枝等功能。

  • 提交

我们在SourceTree中演示一遍。
在之前我们已经创建的一个本地仓库demo中,我们使用SourceTree对其进行可视化的控制:


当我们没有做任何的推送的时候,远程仓库是没有内容的,但是在SourceTree中会看到文件状态中的数字出现变化的时候说明本地仓库有文件改动了(也即是这时候远程仓库和本地仓库中的内容不一致了)。
如果我们想要提交本地的改动,我们先讲改动的文件放入暂存中,点击在点击左上角的提交按钮,这是候可以添加本次提交的描述信息,并设置是否立即推送到远程仓库。设置完毕之后,我们点击右下角的提交按钮即可。


提交
  • 拉取

拉取是将远程仓库的改动内容拉取到本地的仓库中。

  • 推送

推送和拉取相反,会将已经提交的内容推送到远程仓库。

  • 抓取

抓取不回立即将远程仓库的更新更新到本地仓库,而是会将远程仓库的修改内容抓取过来供查看。

  • 回滚

将提交的项目回滚到之前的某个版本上。

  • 分支

分支可用于多人开发时,给每个成员之间一个独立的开发空间。
在SourceTree中创建一个分支很简单,只需要点击上部菜单的分支按钮即可:


创建好之后在SourceTree界面的分支中可以看到。
分支

我在分支中提交三次内容之后,BitBucket的远程仓库中会有记录:
远程仓库记录(BitBucket)

在本地的SourceTree中也同样有记录:
本地仓库记录(SourceTree)

  • 合并分支

一般来说,合并分支有两种方式:merge into brance和merge from brance。顾名思义,就是合并进某个分支和将某个分支拉来合并。具体的操作在SourceTree中的菜单中尝试(BitBucket中也能进行分支的合并)。


合并分枝

合并时有可能出现合并冲突:这时候只要查看那些文件有冲突。(多人修改了同一个地方,就会出现冲突,这时候只需要选择的使用某一部分就行了),解决冲突之后,再将合并后的分支进行提交推送。合并就完成了。
完成合并之后,在SourceTree中可以看到:


合并成功

7. 如何添加.gitignore文件

在默认的情况下,Git将会提交仓库中所有的文件,但是我们在某些时候,希望部分文件不给提交,比如开发者个人用户的信息或者一个很大的SDK文件(这种文件一般不会改动,每个人有一份就可以了,不需要进行版本控制)等。
使用 .gitignore忽略文进可以将文件忽略在改动的时候不回被要求提交。我们只需要把需要忽略的文件名加入到这个文件中即可。
如果一个项目并没有创建 .gitignore的时候,我们需要自己创建一个文件:
$ touch .gitingnore
$open .gitingnore
然后在文件中加入你要忽略的项目文件名即可。如果你不知道你应该忽略那些文件名,可以访问这个网站https://github.com/github/gitignore(这是github为大家提供的忽略文件列表,包含了大多数语言的对应文件),选择你正在使用的语言的复制进去即可。

如果添加.gitingnore 依旧无效。那可能是因为你要忽略的文件已经被版本控制了。这时候需要将所有的本地缓存清空,命令行输入:
$ git rm -r --cached .
让项目重新变成track状态 (可提交),在进行一次提交,接下来就能够使.gitingnore文件生效了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 162,306评论 4 370
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 68,657评论 2 307
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 111,928评论 0 254
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,688评论 0 220
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 53,105评论 3 295
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 41,024评论 1 225
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 32,159评论 2 318
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,937评论 0 212
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,689评论 1 250
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,851评论 2 254
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,325评论 1 265
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,651评论 3 263
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,364评论 3 244
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,192评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,985评论 0 201
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 36,154评论 2 285
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,955评论 2 279