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

网友投稿 406 2022-11-27

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 into 'demo-hello-service'...Username for 'rootPassword for 'You appear to have cloned an empty repository.### 查看项目# ls | grep demodemo-hello-servicedemo-java-servicemicroservicecicd-demo-servicespinnaker-canary-demo### 进入项目中#### 创建文件# cd demo-hello-service/# echo devopsdevops >> jenkins.txt# lsjenkins.txt### 提交文件到远程仓库# git add jenkins.txt# git commit -m "add jenkins.txt "[master (root-commit) d74d541] add jenkins.txt 1 file changed, 1 insertion(+) create mode 100644 jenkins.txt[root@zeyang-nuc-service demo-hello-service]# git push origin masterUsername for 'rootPassword for '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 * [new branch] master -> master

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

[root@jenkins-master devops-maven-service-master]# git initInitialized empty Git repository in /root/devops-maven-service-master/.git/[root@jenkins-master devops-maven-service-master]# git remote add origin devops-maven-service-master]# git add .[root@jenkins-master devops-maven-service-master]# git commit -m "Initial commit"*** Please tell me who you are.Run git 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 commit 11 files changed, 816 insertions(+) create mode 100644 .gitignore create mode 100644 .mvn/wrapper/MavenWrapperDownloader.java create mode 100644 .mvn/wrapper/maven-wrapper.jar create mode 100644 .mvn/wrapper/maven-wrapper.properties create mode 100644 Jenkinsfile create mode 100755 mvnw create mode 100644 mvnw.cmd create mode 100644 pom.xml create mode 100644 src/main/java/com/example/demo/DemoApplication.java create mode 100644 src/main/resources/application.properties create mode 100644 src/test/java/com/example/demo/DemoApplicationTests.java[root@jenkins-master devops-maven-service-master]# git push -u origin mainerror: src refspec main does not match any.error: failed to push some refs to 'devops-maven-service-master]# git push -u origin masterUsername for 'rootPassword for '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 * [new branch] master -> masterBranch master set up to track remote branch master from origin.

创建一个分支

主干/特性开发

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

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

特性分支开发

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

拉取特性分支

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

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

特性分支开发与提交

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

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

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

root@zeyang-nuc-service demo-hello-service]# git pullUsername for 'rootPassword for '* [new branch] feature-1-DEV -> origin/feature-1-DEVAlready up to date.[root@zeyang-nuc-service demo-hello-service]# git branch -a* master remotes/origin/feature-1-DEV remotes/origin/master[root@zeyang-nuc-service demo-hello-service]# git checkout feature-1-DEVBranch '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-DEV master remotes/origin/feature-1-DEV remotes/origin/master

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

### 更改文件内容[root@zeyang-nuc-service demo-hello-service]# lsjenkins.txt[root@zeyang-nuc-service demo-hello-service]# vi jenkins.txt[root@zeyang-nuc-service demo-hello-service]# cat jenkins.txtpipeline { 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]# lsjenkins.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 pipeline 2 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 version [root@zeyang-nuc-service demo-hello-service]# git push origin feature-1-DEVUsername for 'rootPassword for '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: d74d541..97ae23e feature-1-DEV -> feature-1-DEV

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

特性分支合并操作

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

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

在这个页面:

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

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

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

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:单片机外接键盘电路
下一篇:java开发微服务架构设计消息队列的水有多深
相关文章

 发表评论

暂时没有评论,来抢沙发吧~