1. 程式人生 > 其它 >|NO.Z.00015|——————————|CloudNative|——|CI/CD&GitLab操作 .V05|----------------------------------------------------|GitLab.程式碼處理|合併分支|Clone專案|

|NO.Z.00015|——————————|CloudNative|——|CI/CD&GitLab操作 .V05|----------------------------------------------------|GitLab.程式碼處理|合併分支|Clone專案|



[CloudNative:CI/CD&GitLab操作.V05]                                                                    [Applications.CloudNative] [|CI/CD|分散式版本控制系統|**3節點**|Jenkins|Git|——|Gitlab語言環境|Gitlab初始化|] [https|smtp|Gitlab取消使用者自動註冊|ssh|gitlab資料備份|定時備份|gitlab資料恢復|gitlab管理k8s叢集|]








一、gitlab 程式碼處理
### --- 程式碼處理流程

~~~     # 公司程式碼提交合並流程
~~~     PM(專案主管/專案經理)在gitlab建立任務,分配給開發人員
~~~     開發人員領取任務後,在本地使用git clone拉取程式碼庫
~~~     開發人員建立開發分支(git checkout -b dev),並進行開發
~~~     開發人員完成之後,提交到本地倉庫(git commit )
~~~     開發人員在gitlab介面上申請分支合併請求(Merge request)
~~~     PM在gitlab上檢視提交和程式碼修改情況,確認無誤後,確認將開發人員的分支合併到主分支(master)
~~~     開發人員在gitlab上Mark done確認開發完成,並關閉issue。
~~~     這一步在提交合並請求時可以通過描述中填寫"close #1"等字樣,可以直接關閉issue
二、建立公司使用者併為其分組
### --- 建立使用者:建立專案管理使用者 Tompson

~~~     # ——>Admin Area——>Users——>New users——>Account——>Regular——Create user——>END 
~~~     同樣的方法,再建立 Eric 、Hellen 使用者。
~~~     使用者新增完畢後,gitlab 會給使用者發一封修改密碼的郵件,各使用者需要登入自己的郵箱,
~~~     並點選相關的連結,設定新密碼。
~~~     # 使用者分組:將 Tompson 使用者新增到組中,指定T為本組的 owner
~~~     # 使用者分組:同樣的方法將使用者Eric、Hellen 新增到組中,並指定為Developer
三、建立專案並匯入公鑰
### --- 建立專案並匯入公鑰

~~~     # 使用 Tompson 使用者的身份與密碼登入到 gitlab 介面中,並建立專案 Project
~~~     ——>Create a project——>Create blank project——>END
~~~     # 指定專案的儲存路徑和專案名稱
~~~     # 把客戶端的公鑰新增到這裡之後才會出現下圖的內容
~~~     公鑰建立
[root@server11 ~]# ssh-keygen 
[root@server11 ~]# cat ~/.ssh/id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCXG156FsrS9MDW0gkYI+uPHn8EsLcHbxJog1NC2Q4r7D4WT4yhSvO6cywcWz1Q9ZO6fhSIvI3cUBSL3KHmSWnzfwixis2TN4/uizQ3yAbFzn1MM2UUAH7aSJSWqMj4Zo/q0DMDDBW5Bh3Ttm+lKoA7X8FPt61Y5sGGtEeEviObk2TQXBwyrXw7OYJqBvOfYQGzysqTZkVNrsl/e3x3/0Yqqw2fAIl08MpCaYxSkmiJG51kfxO+WQ+49m/vl4Rn722cxpooff6/v3fNeV2dBThGlDPohcfJsOs1YkQZwoKGcjFPIy4J2MR2K/Mue2iRGe0afP6hyX2A86NqX8VHVq2n root@server11
~~~     # 配置gitlab公鑰


四、建立新分支:為專案建立 Dev分支
### --- 建立新分支

~~~     因為版本的原因,需要先在專案裡面新增一個檔案,才能顯示下圖中建立分支的操作
~~~     Projects——>Your Projects——>Jenkins——>Chathall——>New branch
~~~     ——>Branch name:dev——>Create branch
五、在gitlabclient新增使用者並匯入祕鑰
### --- 在 client 上新增 Tompson 的使用者
~~~     centos7.x 10.10.10.12 client

[root@server12 ~]#  useradd Tompson
[root@server12 ~]#  useradd Hellen
[root@server12 ~]#  useradd Eric
[root@server12 ~]#  useradd test
[root@server12 ~]#  su - Tompson
~~~     生成使用者祕鑰

[Tompson@server12 ~]$ ssh-keygen 
[[email protected] ~]$ cat .ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDZ8cRGHej+sZzlmK36W5MUXMLOGdTwFI9Jj44mGuabZCrlYW4GDpL6ppezN+Sur0wHtnKonYJzm8ntqS0S0UHyaPPQPl9Mrs/6Z4VrXZ/4RlqHdWeSrmOwCBQld0l8HvrmP4TyGHrOreO8uZqimd/Z+OiMqnYRZzENX11Pti/Px5g1MtJcoCi9uLtF42QYrt1X/fzAyPU9C5/5ZUq4Jln3EF20bzcA52oAzZIl0jrhI0TeTeW6zYq+KxdHGshL+qG7+Ne+akPOe4Ma5BQjcMZ2dQ2kbGuozXmLT8RDcj9YRKceQsUdTI71lJpwrWKGn8Vhra0EaK3hgoTuvMYaGfOF [email protected]
### --- 將 Tompson 的公鑰複製到 gitlab 中

~~~     使用 Tompson 使用者的身份與密碼登入到 gitlab介面中,然後在 ssh-key 中新增相關的key 1

六、合併分支
### --- 合併分支

~~~     Branches——>Merge request——>Submit merge request——>END
七、為 Tompson 使用者配置 git
### --- 為tompson配置git

[root@server12 ~]# su - Tompson
[Tompson@server12 ~]$ git config --global user.email "[email protected]"
[Tompson@server12 ~]$ git config --global user.name "tom"
[Tompson@server12 ~]$ git clone [email protected]:Jenkins/chathall.git
drwxrwxr-x 3 Tompson Tompson 66 Mar 28 22:15 chathall
[Tompson@server12 ~]$ ll chathall/
total 8
-rw-rw-r-- 1 Tompson Tompson 1 Mar 28 22:15 a.txt
-rw-rw-r-- 1 Tompson Tompson 5 Mar 28 22:15 b.txt
### --- 建立新檔案,新增內容,並提交到 master 分支

[Tompson@server12 ~]$ cd chathall/
[Tompson@server12 chathall]$ vim a.txt 
#!/bin/bash
echo "gitlab test"
[Tompson@server12 chathall]$ git add a.txt 
[Tompson@server12 chathall]$ git commit -m 'chucitijiao'
[Tompson@server12 chathall]$ git push -u origin master
Counting objects: 5, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 331 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To [email protected]:Jenkins/chathall.git
   2d6b585..cc9d775  master -> master
Branch master set up to track remote branch master from origin.
通過瀏覽器可以檢視提交的內容
八、clone專案:
### --- 使用 Eric 使用者登入,並 clone 專案

[root@server12 ~]# su - Eric
[Eric@server12 ~]$ ssh-keygen -C [email protected]
[Eric@server12 ~]$ cat .ssh/id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDje61B3GLJmb6YjafaWwhTgT/7XKg6daMOK9vKY1j7d3t7rJGRt9srAsnAJ5CMuoQ2eVEQBiOvwo+rDYY6Ek+Ia0jKk+tZJXvHfhoYvUCm69Nvf7ZNUGJ2tQcc+kpW4aRg/tctkbqbEsLPzDmFZi0b+nqCNgCa1n+LjJaufFwPdL4AjdXVjimwI+HDq1AqIrfw5yvqsZVedpuRTrMRSxqy8nrxZNfvpWaTjsJ8U9pwlFvdzcETScU1fJkkxmPjyeguhKN64asr5XbABJQ1seuH8SrFAi/CecKr3ZPX+thj1ebC+uPNlqra6JdOZxVPKq54LDmXcRI8b5Blb1RoPn9H [email protected]
### --- 同樣需要使用Eric使用者登入gitlab web 介面,並新增相應的ssh-key。
~~~     然後設定git ,並clone專案

[[email protected] ~]$ git config --global user.email "[email protected]"
[[email protected] ~]$ git config --global user.name "Eric"
[Eric@server12 ~]$ git clone [email protected]:jenkins1/chathall.git
[Eric@server12 ~]$ ll chathall/
-rw-rw-r-- 1 Eric Eric 1 Mar 28 22:33 a.txt
-rw-rw-r-- 1 Eric Eric 1 Mar 28 22:33 b.txt
### --- 切換到dev分支,修改檔案內容,
~~~     並將新 code 提交到 dev分支 (Developer角色預設並沒有提交master的許可權)
~~~     # 建立新的分支

[Eric@server12 chathall]$ git checkout -b 'dev'   
~~~     # 切換到分支

[Eric@server12 chathall]$ git checkout dev             
[Eric@server12 chathall]$ ls
a.txt  b.txt
[Eric@server12 chathall]$ vim eric.sh
#!/bin/bash
echo "brahch test"
[Eric@server12 chathall]$ git add .
[Eric@server12 chathall]$ git commit -m '201805101658'
[Eric@server12 chathall]$ git checkout master
Switched to branch 'master'
[Eric@server12 chathall]$ git branch
  dev
* master
使用Eric 使用者登入gitlab web,在介面中 建立一個合併請求 使用Tompson使用者登入 gitlab web ,找到“合併請求” ,然後將dev分支合併到master分支







===============================END===============================


Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart                                                                                                                                                    ——W.S.Landor



來自為知筆記(Wiz)