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實際版本號)

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM