前言
公司IT帮忙搭建了gitlab服务,然后丢给我一个访问地址以及用户名和密码。这两天登陆上去把项目基本目录搭建起来,顺便做了总结如下。
准备工作+新建项目
1)登陆进去,可以先创建Group,比如AI。 然后在AI group下面点击“New Project”按钮创建新的项目,如下图箭头所示。一般地,该项目属性设为private,确保有权限的人才能访问。
2) 本地PC安装git(请自行百度),并在本地PC新建专门用来和git服务器打交道(提交或下载)的根目录。
认证(Authentication)
第一次和git服务器打交道都是先要认证的。
1)在上面新建的根目录下,右击鼠标,选择 Git Bash here
2) cd ~/.ssh
3) ssh-keygen -t rsa -C "xxx@xxx.cn" #生成key,并发送到公司邮箱
4)拷贝公共key到用户setting里面,并点击"add key"按钮确保添加key成功
cat id_rsa.pub and copy this pub key to your user settings and lastly click button "Add key"
全局配置
1)git config --global user.name "用户名"
2)git config --global user.email "公司邮箱xxx"
3) git config --global core.autocrlf false #该命令是禁止提交和下载代码等文件时自动将linux下的换行符LF(换行)转换成windows的CRLF(回车+换行)
clone
将上面“准备工作”中新建的项目clone到本地
1)获取每个项目对应的ssh链接。先点击clone,然后拷贝红框所示的链接
2)git clone git@192.168.xx.xx:ai/docs.git #clone docs空目录到本地
提交
比方说,现在要提交文档到服务器。
1)在本地docs空目录下新建子目录,如图像处理,深度学习等。当然也可以不创建子目录,直接把文档放在docs根目录
2)把需要提交的文档相应的放入各子目录
3)在gitbash界面里面, 进入docs根目录: cd docs/
4)git add .
5) git commit -m "comments"
6)git push -u origin master
更新
将服务器最新提交更新同步到本地机器。此外,在每次提交前,最好先更新一下
git pull origin master
远程删除服务器上的目录
如果要删除group下创建的项目,则直接在服务器webpage的右下角点击 “Remove Project”
如果要删除项目下的目录(比如 data_2019),则通过下面命令:
1)cd 待删除目录的父目录
2) git rm -r --cached data_2019
3)git commit -m "comments"
4)git push -u origin master
没有权限push本地文件到服务器的问题
错误log如下:
remote: GitLab: You are not allowed to push code to protected branches on this project.
解决办法:
gitlab页面上,进入该有问题的目录,然后右击左边栏中的settings,选择Repository,并点击 “保护分支”右边的expand 进入下面页面,最后点击unprotect按钮即可。