gitlab跟svn的区别我就不多说了,这里直接说具体应用。
建立一个project
先登陆到gitlab的网页,我这里使用了root用户,选择create a project
,然后就是填写project的名称以及它所属的用户,这里由于只有root用户,所以这个叫jjfjj
的project就是root自己的,如果建立了一个组的话,那么这里就填写那个组,如下:
下面这个Visibility Level
,就是权限等级,它分三种:
- Private:私有的,只有你自己或者组内的成员能访问
- Internal:所有登录的用户
- Public:公开的,所有人都可以访问
这个东西和project的名称都是可以后期更改的。
然后就是create project
,就创建了这个jjfjj。如图:
将本地代码上传
建立好了gitlab,就要把开发的代码传进去,我在另外一个机器里,创建一个目录code,这个目录就是专门用来放置代码的,假设现在里面有一个文件叫testcode.py
,如图:
具体操作如下:
如果在两个不同的文件夹里执行上面的过程,会传输到两个不同的project里。说明一下上面几个命令的意思:git init
:初始化git仓库git add .
:添加整个目录里的所有文件到仓库git rm --cached 某个文件名
:将某个文件从gitlab上撤除,如果想当前文件夹恢复成一个普通的文件夹,那就把文件夹路径下的.git文件删除掉即可git commit -m '这里是要写的注释'
:提交代码到仓库git remote add origin +gitlab的地址(上上图里红色框的内容)
:链接到gitlab服务器git push origin master
:push代码到服务器git remote -v
:查看当前文件夹的目标project
此时刷新一下gitlab的project页面,就看到刚刚的那个testcode.py
已经传上来了。如图:
如果代码有所更改或者出现Everything up-to-date
,那么就按顺序执行git add .
,git commit -m '这里是要写的注释'
,git push origin master
即可。
免密码push代码
在上面的git push origin master
的时候需要输入gitlab的用户密码,如要需要免密码push,有两种方法。
第一种方法是ssh,请看 https://blog.whsir.com/post-1749.html/comment-page-1#comment-3425 。
第二种方法是用http的方式传送,先打开.git/config
这个配置文件,修改url = http://账号:密码@以.git结尾的项目地址
,保存之后重新去执行git add .
,git commit -m '这里是注释'
,git push origin master
,就不再需要输入密码了。
从gitlab上垃取代码
在要部署的机器上找到要部署的文件夹,我这里用/gitlab为例,操作如下:
1
2
3
4
5
6
7
8
9
10[root@pass-mixnumbus-001 /GITLAB] # git init #将这个文件夹进行初始化
Initialized empty Git repository in /GITLAB/.git/ #提示现在已经安装了.git文件
[root@pass-mixnumbus-001 /GITLAB(master)] # git remote add origin http://114.55.224.158/root/JJFJJ.git #确定库
[root@pass-mixnumbus-001 /GITLAB(master)] # git pull origin master #制定要把master分支的代码全拉取到这个文件夹里
Username for 'http://114.55.224.158': root #输入账号和密码
Password for 'http://root@114.55.224.158':
From http://114.55.224.158/root/JJFJJ
* branch master -> FETCH_HEAD
[root@pass-mixnumbus-001 /GITLAB(master)] # ls #看一下效果
admin.py looksql.py models.py syncECS.py testsyncECS.py
再与gitlab界面的代码比较一下,果然都过来了!如图:
在gitlab上建立分支
gitlab上有很多个分支,主要的分支是master,它也是默认的分支,但是实际工作中是需要其他的开发去新建一些测试的分支,到时候可以先把这些测试的分支拿来部署,如果有问题就回滚回master分支。
分支相关的语句如下:
1
2
3
4
5
6git branch #查看本地分支
git branch -r #查看远程分支
git branch -a #查看所有分支
git branch develop #本地创建新的分支,此时刷新gitlab的页面的话就会有这个叫develop的分支建立了
git checkout develop #切换到新的develop分支
git checkout -b develop #上面两步可以合成一个命令,这个的意思就是:创建+切换分支
这个时候在代码机上新增或者改变文件,然后执行git add .
,git commit -m '这里是要写的注释'
,git push origin develop
,就把新增的变化上传到了develop分支,如图:
1
2
3
4
5
6
7
8
9
10
11[root@iZ23pg8sy5bZ ~/GITLAB(develop)] # git push origin develop
Counting objects: 4, done.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 325 bytes | 0 bytes/s, done.
Total 3 (delta 1), reused 0 (delta 0)
remote:
remote: To create a merge request for develop, visit:
remote: http://114.55.224.158/root/JJFJJ/merge_requests/new?merge_request%5Bsource_branch%5D=develop
remote:
To http://114.55.224.158/root/JJFJJ.git
fc8d456..8a97b58 develop -> develop
而在部署的机器上,直接执行git pull origin develop
,输入账号密码之后,就会把develop分支的内容全部垃取下来了。
如果不想要这个develop分支了,就git branch -d develop
,如果要删除远程的分支,就是git push origin :develop
,注意这个冒号。
参考资料
https://blog.cnbluebox.com/blog/2014/04/15/gitlabde-shi-yong/
https://zhang759740844.github.io/2016/08/27/git%E6%8A%80%E5%B7%A7/
https://www.restran.net/2016/02/23/git-and-gitlab-guide/
https://www.jianshu.com/p/f54053afecf2