当前位置: 首页>編程日記>正文

GitLab 创建项目组及将代码导入项目

GitLab 创建项目组及将代码导入项目

创建一个项目组


gitLab是一个版本控制系统。

配置group名称最好与项目组有关的,例如业务的简称等等。项目组的类型分为 Private、Internal、Public三种类型。

  • Private 私有类型(当group为私有类型,后面组下面的项目都是私有类型)
  • Public 公开类型

创建group,这个group就是仓库的组,下面就是如何创建group 

创建好组之后,组里面可以有N多子项目。

项目组创建好之后,要添加members,也就是用户,Jenkins会去gitlab上面下载代码,一般都会使用一个统一的账号,这个时候需要在gitlab里面创建普通的用户,给一个reporter的权限,只能下载代码,后续Jenkins里面就可以去配置这个用户了专门下载代码。

开发者权限可以提交代码。

现在在这个组里去创建项目。

选择项目属于的组,因为组是私有的,所以项目也是私有的。

 

 

将代码导入项目


 项目已经创建好了,要将本地代码提交上去。

  • Create a new repository:创建了空的库,然后才开始在库里面进行开发,然后提交上去就行了
  • Push an existing folder:创建完库,代码已经有了,直接提交上去

下载代码库,并在代码库中创建文件提交。


### 下载项目
# git clone http://192.168.1.200/devops/demo-hello-service.git
Cloning into 'demo-hello-service'...
Username for 'http://192.168.1.200': root
Password for 'http://root@192.168.1.200':
warning: You appear to have cloned an empty repository.### 查看项目
# ls | grep demo
demo-hello-service
demo-java-service
microservicecicd-demo-service
spinnaker-canary-demo### 进入项目中
#### 创建文件
# cd demo-hello-service/
# echo devopsdevops >> jenkins.txt
# ls
jenkins.txt### 提交文件到远程仓库
# git add jenkins.txt
# git commit -m "add jenkins.txt "
[master (root-commit) d74d541] add jenkins.txt1 file changed, 1 insertion(+)create mode 100644 jenkins.txt
[root@zeyang-nuc-service demo-hello-service]# git push origin master
Username for 'http://192.168.1.200': root
Password for 'http://root@192.168.1.200':
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Writing objects: 100% (3/3), 221 bytes | 221.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To http://192.168.1.200/devops/demo-hello-service.git* [new branch]      master -> master

  扩展:将本地已存在的代码提交到远程仓库

[root@jenkins-master devops-maven-service-master]# git init
Initialized empty Git repository in /root/devops-maven-service-master/.git/
[root@jenkins-master devops-maven-service-master]# git remote add origin  http://139.198.166.235:81/devops/devops-hello-service.git
[root@jenkins-master devops-maven-service-master]# git add .
[root@jenkins-master devops-maven-service-master]# git commit -m "Initial commit"*** Please tell me who you are.Rungit config --global user.email "you@example.com"git config --global user.name "Your Name"to set your account's default identity.
Omit --global to set the identity only in this repository.fatal: unable to auto-detect email address (got 'root@jenkins-master.(none)')
[root@jenkins-master devops-maven-service-master]# git config --global user.email "1239683670@qq.com"
[root@jenkins-master devops-maven-service-master]# git config --global user.name "lulei"
[root@jenkins-master devops-maven-service-master]# git commit -m "Initial commit"
[master (root-commit) 23db57e] Initial commit11 files changed, 816 insertions(+)create mode 100644 .gitignorecreate mode 100644 .mvn/wrapper/MavenWrapperDownloader.javacreate mode 100644 .mvn/wrapper/maven-wrapper.jarcreate mode 100644 .mvn/wrapper/maven-wrapper.propertiescreate mode 100644 Jenkinsfilecreate mode 100755 mvnwcreate mode 100644 mvnw.cmdcreate mode 100644 pom.xmlcreate mode 100644 src/main/java/com/example/demo/DemoApplication.javacreate mode 100644 src/main/resources/application.propertiescreate mode 100644 src/test/java/com/example/demo/DemoApplicationTests.java
[root@jenkins-master devops-maven-service-master]# git push -u origin main
error: src refspec main does not match any.
error: failed to push some refs to 'http://139.198.166.235:81/devops/devops-hello-service.git'
[root@jenkins-master devops-maven-service-master]# git push -u origin master
Username for 'http://139.198.166.235:81': root
Password for 'http://root@139.198.166.235:81': 
Counting objects: 27, done.
Compressing objects: 100% (17/17), done.
Writing objects: 100% (27/27), 53.44 KiB | 0 bytes/s, done.
Total 27 (delta 0), reused 0 (delta 0)
To http://139.198.166.235:81/devops/devops-hello-service.git* [new branch]      master -> master
Branch master set up to track remote branch master from origin.

创建一个分支

 

 

 主干/特性开发


主干开发,一切都是master分支,不管后面来了多少个特性,提交代码都是提交到主干分支上面。

特性分支开发:来了一些需求,这就需要基于master分支创建feature特性分支。这些新的需求代码都在特性分支,特性分支开发完了,将代码提交上去了,然后触发流水线,这些流水线就是来验证特性分支的,验证没有问题,那么特性分支就需要做另外的操作,就需要将代码合并到master分支了,然后发版了。

特性分支开发

  1. 基于master主干分支创建版本分支(release-1.1.1)
  2. 基于master分支创建特性分支(feature-1, feature-2....)
  3. 特性分支开发完成后,将特性分支合并到版本分支
  4. 基于版本分支进行发布(dev环境,本地验证,UAT,预生产,生产)
  5. 发生产了也没问题,那么将版本分支合并到主干分支
  6. 基于master主干分支创建一个标签tag

 

 

拉取特性分支


为什么要拉取分支? 一个分支不够吗? 一般我们使用 master 主干分支存放最新的能够发布生产的代码,而单独创建一些特性分支来做项目需求任务的开发分支。 这样的好处是防止主干分支污染,对分支起到了保护的作用。

下面进入 demo-hello-service 项目主页,然后基于主干分支master,创建特性分支feature-1-DEV。操作如下:

image.png

image.png

 

特性分支开发与提交


查看当前本地分支,发现没有刚刚远程创建的 feature-1-DEV 分支。

[root@zeyang-nuc-service demo-hello-service]# git branch -a
* masterremotes/origin/master

`git pull` 同步远程仓库所做的更新到本地, 这样远程的feature-1-DEV 分支就同步到了本地。然后我们使用 git checkout feature-1-DEV 切换到特性分支。 

root@zeyang-nuc-service demo-hello-service]# git pull
Username for 'http://192.168.1.200': root
Password for 'http://root@192.168.1.200':
From http://192.168.1.200/devops/demo-hello-service* [new branch]      feature-1-DEV -> origin/feature-1-DEV
Already up to date.
[root@zeyang-nuc-service demo-hello-service]# git branch -a
* masterremotes/origin/feature-1-DEVremotes/origin/master
[root@zeyang-nuc-service demo-hello-service]# git checkout feature-1-DEV
Branch 'feature-1-DEV' set up to track remote branch 'feature-1-DEV' from 'origin'.
Switched to a new branch 'feature-1-DEV'
[root@zeyang-nuc-service demo-hello-service]# git branch -a
* feature-1-DEVmasterremotes/origin/feature-1-DEVremotes/origin/master

我们更改了Jenkins.txt文件内容,并创建一个新的version文件,然后将更改内容提交到远程仓库。

### 更改文件内容
[root@zeyang-nuc-service demo-hello-service]# ls
jenkins.txt
[root@zeyang-nuc-service demo-hello-service]# vi jenkins.txt
[root@zeyang-nuc-service demo-hello-service]# cat jenkins.txt
pipeline {agent { label "master"}stages{stage("Build"){steps {script {echo "hello"}}}}
}
[root@zeyang-nuc-service demo-hello-service]# echo 1.1.1 >version
[root@zeyang-nuc-service demo-hello-service]# ls
jenkins.txt  version### 提交到远程仓库分支
[root@zeyang-nuc-service demo-hello-service]# git add jenkins.txt version
[root@zeyang-nuc-service demo-hello-service]# git commit -m "add pipeline "
[feature-1-DEV 97ae23e] add pipeline2 files changed, 14 insertions(+), 1 deletion(-)create mode 100644 version[root@zeyang-nuc-service demo-hello-service]# git push origin feature-1-DEV
Username for 'http://192.168.1.200': root
Password for 'http://root@192.168.1.200':
Enumerating objects: 6, done.
Counting objects: 100% (6/6), done.
Delta compression using up to 8 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (4/4), 380 bytes | 380.00 KiB/s, done.
Total 4 (delta 0), reused 0 (delta 0)
remote:
remote: To create a merge request for feature-1-DEV, visit:
remote:   http://192.168.1.200/devops/demo-hello-service/-/merge_requests/new?merge_request%5Bsource_branch%5D=feature-1-DEV
remote:
To http://192.168.1.200/devops/demo-hello-service.gitd74d541..97ae23e  feature-1-DEV -> feature-1-DEV

这样我们就把本地的特性分支开发的代码提交到了远程特性分支中了, 接下来对应该对该特性分支进行测试验证,没问题后合并到主干分支。

特性分支合并操作


将特性分支 feature-1-DEV 代码合并到主干分支master  Merge Request。

在这个页面,选择源分支和目标分支。 

在这个页面:

  • 1 指定合并请求的标题
  • 2 描述信息,一般都是变更信息
  • 3 指定主管进行审核(最终该用户决定是否合并)
  • 4 指定进行代码审查的同事
  • 5 合并成功后删除源分支(最后很定要删除源分支,可以先保留一个版本后再删除,此处最好取消勾选)

image.png

 提交合并后,由管理员审查进行合并。

image.png

到此一个基本的项目开发提交代码过程就已经完成了。(多熟悉一下这个过程) 


https://www.fengoutiyan.com/post/16188.html

相关文章:

  • 导入源代码
  • 代码获取
  • idea如何从gitlab拉代码
  • eclipse导入项目jsp报错
  • gitlab新建项目
  • 数据库代码
  • gitlab搭建
  • java导入文件
  • 鏡像模式如何設置在哪,圖片鏡像操作
  • 什么軟件可以把圖片鏡像翻轉,C#圖片處理 解決左右鏡像相反(旋轉圖片)
  • 手機照片鏡像翻轉,C#圖像鏡像
  • 視頻鏡像翻轉軟件,python圖片鏡像翻轉_python中鏡像實現方法
  • 什么軟件可以把圖片鏡像翻轉,利用PS實現圖片的鏡像處理
  • 照片鏡像翻轉app,java實現圖片鏡像翻轉
  • 什么軟件可以把圖片鏡像翻轉,python圖片鏡像翻轉_python圖像處理之鏡像實現方法
  • matlab下載,matlab如何鏡像處理圖片,matlab實現圖像鏡像
  • 圖片鏡像翻轉,MATLAB:鏡像圖片
  • 鏡像翻轉圖片的軟件,圖像處理:實現圖片鏡像(基于python)
  • canvas可畫,JavaScript - canvas - 鏡像圖片
  • 圖片鏡像翻轉,UGUI優化:使用鏡像圖片
  • Codeforces,CodeForces 1253C
  • MySQL下載安裝,Mysql ERROR: 1253 解決方法
  • 勝利大逃亡英雄逃亡方案,HDU - 1253 勝利大逃亡 BFS
  • 大一c語言期末考試試題及答案匯總,電大計算機C語言1253,1253《C語言程序設計》電大期末精彩試題及其問題詳解
  • lu求解線性方程組,P1253 [yLOI2018] 扶蘇的問題 (線段樹)
  • c語言程序設計基礎題庫,1253號C語言程序設計試題,2016年1月試卷號1253C語言程序設計A.pdf
  • 信奧賽一本通官網,【信奧賽一本通】1253:抓住那頭牛(詳細代碼)
  • c語言程序設計1253,1253c語言程序設計a(2010年1月)
  • 勝利大逃亡英雄逃亡方案,BFS——1253 勝利大逃亡
  • 直流電壓測量模塊,IM1253B交直流電能計量模塊(艾銳達光電)
  • c語言程序設計第三版課后答案,【渝粵題庫】國家開放大學2021春1253C語言程序設計答案
  • 18轉換為二進制,1253. 將數字轉換為16進制
  • light-emitting diode,LightOJ-1253 Misere Nim
  • masterroyale魔改版,1253 Dungeon Master
  • codeformer官網中文版,codeforces.1253 B
  • c語言程序設計考研真題及答案,2020C語言程序設計1253,1253計算機科學與技術專業C語言程序設計A科目2020年09月國家開 放大學(中央廣播電視大學)
  • c語言程序設計基礎題庫,1253本科2016c語言程序設計試題,1253電大《C語言程序設計A》試題和答案200901
  • 肇事逃逸車輛無法聯系到車主怎么辦,1253尋找肇事司機