gitlab(八):gitlab-SourceTree的使用

 

gitlab-SourceTree使用

#本文写于2016年,为整理发布。内容可能老了点,大同小异,仅供参考!

https://www.sourcetreeapp.com/

SourceTree 是一款拥有可视化界面的项目版本控制软件,适用于git项目管理,同时它集成了 git flow 工作流程,对于不熟悉 git 命令的初学者来说,可以通过 SourceTree 快速学会使用 Git 和 git flow 来参与代码版本管理和团队协作开发。

 

1.1           客户端安装

建议统一使用SourceTree软件进行代码开发的管理

 

下载地址:http://www.sourcetreeapp.com/

客户端支持windows和苹果系统

若无法下载,请自行搜索下载应用

1.2           SSH key使用(Mac)

ü   生成SSH key

1.打开终端命令行

2.输入以下内容:

    ssh-keygen -t rsa -C “邮箱地址“

 

3.要求输入密码的时候,直接回车即可

4.然后查看生成的SSH Key

    cat ~/.ssh/id_rsa.pub

 

5.把这个SSH key的内容添加到Gitlab个人设置中(请参见下一步)

 

bogon:~ admin$ ssh-keygen -t rsa -C wangxu@7kms.com.cn

Generating public/private rsa key pair.

Enter file in which to save the key (/Users/admin/.ssh/id_rsa):

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in /Users/admin/.ssh/id_rsa.

Your public key has been saved in /Users/admin/.ssh/id_rsa.pub.

The key fingerprint is:

SHA256:FGaCfxxdwdx5HmY8RtmqU/RRKacn1Q2GXXthOs3vE/E wangxu@7kms.com.cn

The key's randomart image is:

+---[RSA 2048]----+

|     .. +. +o==BX|

|    .  +... +oX&B|

|     . ...   +OX=|

|      ..o    o+.B|

|       .S    oo.E|

|            o  ..|

|             . ..|

|                .|

|                 |

+----[SHA256]-----+

bogon:~ admin$ cat ~/.ssh/id_rsa.pub

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCkefzJwY43nzwZHXNC4N+e7XmcHjKBl4BF5Tmisr1H1NwcKm8ArXx4/uP8/O2yOwSFjHAKlTmX8FHlZzF+A1YXzD7qq5IFRqbM4NVxsbQ9V0QAQGTkjaLRgvCh57jXSHZ/DyFstul7Sx99co24uCrTY3rcEk0nZrfZ3yKD+fETOFatJDVxXTs9kaEV8qE7XBXPfMVkW1hK2MJ4N6+PiwOx6I24V9xUKM8LkmD7dc80o6uRhixzwE2xQ1yaTB5jpuo2XVVN9lR7h4oC6h4MZCE2aQaqVEIozVaB8gMkXuLm6Klgx3h7SfWr/c9ZvJQBiXy0nyHnedvYoW+3rm2Q/UD1 wangxu@7kms.com.cn

bogon:~ admin$
ü   Gitlab 配置SSH keys

1.打开Gitlab登录自己的账户,进入用户设置,找到SSH keys

2.点击右侧 Add SSH Key

3.输入上一步生成的key

4.点击Add key 即可添加成功一个key

 

 

1.3           SSH key 使用(Windows)

ü   生成SSH key

1.启用source tree的工具,点击“选项”

2.选择上次生成的SSH秘钥

3.点击“确定”即可添加成功

 

 

 

ü   Gitlab 配置SSH keys

1.打开Gitlab登录自己的账户,进入用户设置,找到SSH keys

2.点击右侧 Add SSH Key

3.输入上一步生成的key

4.点击Add key 即可添加成功一个key

 

 

ü   客户端导入私钥

1.启用source tree的工具,点击“选项”

2.选择上次生成的SSH秘钥

3.点击“确定”即可添加成功

 

 

 

ü   SSH助手配置

1.启用source tree的工具,点击“启动SSH助手”

2.如果没有弹出SSH助手,则看系统托盘是否有

3.点击“Add Key”

4.选择之前导出的私钥

5.添加成功后,查看公钥跟Gitlab网页添加的相同,则说明成功

 

 

 

 

1.4           新建项目规则

ü   创建项目组

1.当有新项目需要进行代码提交时,首先通过管理员创建一个项目的分组

2.点击“New Group/新群组”

3.在输入框输入英文的组名 :如kstore

 

 

ü   创建项目

 

 

 

1.5           项目检出check

 

 

ü   linux 命令行
[root@localhost ~]# mkdir kstore

[root@localhost ~]# cd kstore/

[root@localhost kstore]# git init

Initialized empty Git repository in /root/kstore/.git/

[root@localhost kstore]# git config --global user.name "王旭"

[root@localhost kstore]# git config --global user.email wangxu@7kms.com.cn

[root@localhost kstore]# git clone http://wangxu@localhost/wangxu/kstore.git

Cloning into 'kstore'...

Password:

warning: You appear to have cloned an empty repository.

Checking connectivity... done.

[root@localhost kstore]# echo $?

0

[root@localhost kstore]# ls

kstore

[root@localhost kstore]#

[root@localhost kstore]# cd kstore

[root@localhost kstore]# touch README.md

[root@localhost kstore]# git add README.md

git commit -m "add README"

[root@localhost kstore]# git commit -m "add README"

[master (root-commit) 54458ce] add README

 1 file changed, 0 insertions(+), 0 deletions(-)

 create mode 100644 README.md

[root@localhost kstore]# git push -u origin master

Password:

Counting objects: 3, done.

Writing objects: 100% (3/3), 218 bytes | 0 bytes/s, done.

Total 3 (delta 0), reused 0 (delta 0)

To http://localhost/wangxu/kstore.git

 * [new branch]      master -> master

Branch master set up to track remote branch master from origin.

[root@localhost kstore]# git branch -a

* master

  remotes/origin/master

[root@localhost kstore]#

 

 

遇到提示输入密码的情况:加入密码即可

git config –e

[core]

        repositoryformatversion = 0

        filemode = true

        bare = false

        logallrefupdates = true

[remote "origin"]

        url = http://wangxu:8023YOUyatou@localhost/wangxu/kstore.git

        fetch = +refs/heads/*:refs/remotes/origin/*

[branch "master"]

        remote = origin

        merge = refs/heads/master

 

ü   mac 环境

 

 

 

ü   windows环境

 

 

 

 

1.6           创建分支branch

ü   打开Source Tree客户端,选择需要创建分支的版本

 

 

ü   新建分支

 

 

ü   推送,远端新建分支

Tips:

创建新分支后需要先推送一次,是为了在远端创建分支

 

 

ü   简单验证
[root@localhost kstore]# git pull

From http://localhost/wangxu/kstore

 * [new branch]      v1.0       -> origin/v1.0

Already up-to-date.

[root@localhost kstore]# git branch -a

* master

  remotes/origin/master

  remotes/origin/v1.0

[root@localhost kstore]#

 

 

 

1.7           代码提交Commit

ü   暂存(add)

IDE中保存代码,打开SourceTree点击工作副本,把“未暂存文件”的Checkbox选中,文件会全部部进入“已暂存文件”列表

 

 

Tips:

1.点击文件可以看到该文件的修改内容

2.仅勾选“未暂存文件”列表中的一个文件,可以单独把一个文件放到“已暂存文件”中

ü   提交(Commit)

该操作仅是把版本保存到本地版本列表中,其他用户暂时还看不见。

确定所有需要提交的文件全部在“已暂存文件”之后点击“提交”按钮,输入修改的主要内容,即可提交。

 

提交成功后,可以通过点击相应的分支,查看当前版本类图

 

 

 

 

 

备注:

1.超前一个版本:是距离我们从远端检出(check)下来以后,提交的代码超前于这个版本

2.落后6个版本:是远端有6个提交内容没有更新

Tips:

Commit代码,仅是对于本地代码而言的,所以commit以后,任何其他人是看不见的。

 

1.8           代码拉取Pull

点击拉取,勾选需要获取到的分支,即可从服务器中获取最新代码。

 

 

 

Tips:

1.要养成每次开发前,都先拉取最新代码的习惯

2.不要选择立即提交合并的改动,因为可能会有代码冲突,这样的版本Commit没有意义,一定要没有冲突了再手动提交一次。

 

1.9           代码推送Push

点击“推送”按钮

点击推送,勾选需要推送到的分支,即可推送到服务器中。

 

 

 

Tips:

1.当Commit代码以后,应用一般会出现几个版本需要推送的提示(如没有,可以尝试刷新)。

2.如果此时有需要拉取的数据没有拉取,则提示失败

 

1.10    代码标签tag

 

 

 

Tips:

1.点击推送标签,即可对远端进行同步

2.Tag通常用来记录里程碑版本

 

1.11    代码冲突解决

 

 

 

<<<<<<< HEAD

4444444

=======

33333

>>>>>>> 05ef0a04f666d00cc999fa3f88cca1c75f7fb8ec

本地444444 远端333333

 

 

 

 

Tips:

  1. 推荐修改前先从服务器上更新文件到本地减少冲突。
  2. Pull时不要立即提交(Commit)合并,避免因为冲突而需要多产生一个版本

 

1.12    创建忽略文件

使用IDE开发,容易出现IDE的各种配置信息或者各种Build文件,这些文件是不需要放到代码库中保存的,所以每个git项目新建成功后,需要新增一个忽略文件。

两个文件都要这个给git项目的跟目录下,目录结构如下:

 

 

Tips:

1.README文件也是需要创建的文件。这个相当于项目的简介首页,可以记录项目的版本发布历程,代码规范,代码命名规范,代码目录结构说明等。

一个项目中可以有多个.md文件

2.Gitignore文件前面的“.”不要忽略,该文件是手动创建的

ü   Eclipse Android忽略实例
# built application files

*.apk

*.ap_

# files for the dex VM

*.dex

# Java class files

*.class

# generated files

bin/ gen/

# Eclipse project files

.classpath

.project

# Proguard folder generated by Eclipse

proguard/

# Intellij project files

*.iws

 .idea/workspace.xml

 .idea/tasks.xml

 

ü   Xcode开发忽略文件实例
.DS_Store

build/*

*.xcuserdatad

Pods

*.xcuserstate

Podfile.lock

.name

xcode.xml

scope_settings.xml

workspace.xml

vcs.xml

encodings.xml

misc.xml

modules.xml

OrientFund.iml

#ignore svn document

.svn/*

 

 

1.13    Git Flow实战

http://my.oschina.net/nyankosama/blog/270546

ü   项目中必备分支

主干分支

Master :随时可供在生产环境中部署的代码,建议伴有标签(TAG)

Develop:每天需要提交和合并的代码,功能逐渐完成的代码开发分支

辅助分支

Feature:新功能分支,辅助develop分支。主要用于实验性且效果不好的代码变更。或者用于项目组新成员接手开发新功能等。分支可以合并到develop分支,或者直接丢弃。

命名规范:feature-*

Release:当基本版本完成,准备提交时到APP Store的等待时间,本分支可以做小BUG的修复。成功通过APP Store审核后,必须合并到Master分支,并记录标签(Tag),如果有BUGfix,则还需合并到Develop分支。此版本的作用是项目二期可以继续在develop分支开始开发。

命名规范:release-*

Hotfix: 对于线上版本(Master分支)的BUG修改的辅助分支,必须合并回master分支和develop分支。

命名惯例:hotfix-*

 

 

ü   工作流程图

 

  1. 创建项目
  2. 创建Master分支、develop分支
  3. 在develop分支不断开发和迭代版本0.1功能,如果有需要创建feature开发,则创建并最终选择是否合并到develop分支
  4. Develop分支的0.1版本开发完成,创建release-0.1分支,打包发布给测试人员测试,并进行在develop分支上继续开发0.2版本。
  5. 测试人员发现release-0.1版本bug,相关开发人员直接在该分支上修改,并打包给测试人员继续测试。其他人员继续在develop分支开发新功能。
  6. V0.1测试完成,发给用户查看,打包release-0.1给用户。用户如果有需要修改的需求或者BUG,项目经理把需求和BUG分开。需求问题需要告知客户要等下一个小版本。比较小的BUG问题,选择性的修改或者放到下一版本。如果用户要求一定要看到修改,则一定要合并到develop分支。
  7. 同上一步骤,发布release-0.2版本,此时可以删除release-0.1分支。直到最后发布release-1.0版本后。
  8. Develop理论上可以继续开发二期功能。Release-1.0 版本跟进回归测试的bug,最终确定发布,并通过APP Store审核以后,把release-1.0合并到develop分支和Master分支,并添加一个标签Tag(V1.0)
  9. 如果有1.0版本上线以后,发现了一下BUG,则需要通过Tag1.0创建一个分支hotfix-issue001进行修复,知道提交审核通过,把分支合并到Master分支和develop分支,并给Master添加标签(V实际版本号)

 

 

posted on 2019-06-24 16:00  光阴8023  阅读(3303)  评论(0编辑  收藏  举报