一、安装
①安装包下载
https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el6/
这里,我下载的是11.6.3版本
②安装依赖
sudo yum install -y curl policycoreutils-python openssh-server
sudo systemctl enable sshd sudo systemctl start sshd
sudo firewall-cmd --permanent --add-service=http
sudo systemctl reload firewalld
sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix
③安装
rpm -i gitlab-ce-11.6.3-ce.0.el6.x86_64.rpm
④配置启动
sudo gitlab-ctl reconfigure
⑤访问
默认是80端口
http://192.168.124.129
第一次访问需要设置 root 账号的密码,然后再登录
tips:
如果需要上传新的项目到gitlab服务器上面,个人建议,先将gitlab服务器上面的目录clone下来后,再将新的项目的文件放入文件夹内,然后进行提交。
冲突解决
假设gitlab服务器上有一个dev分支,然后在该分支下有一个readme.txt文件
我们来看下要怎么解决开发过程中很头疼的同步时,冲突的问题
①使用git gui 解决冲突
我们开始进行修改,添加一行local,现在文件是这个样子
init
local
我们提交,依次点击
假设在此期间,gitlab服务器上面的文件已经有了新的提交,文件内容已经被修改成了
init
remote
我们push的时候,肯定会出现异常
好了,我们现在开始解决冲突
首先 remote->fetch from
然后 merge-> local merge,结果如图所示
一般来说,我们会选择 use remote version,然后再将本地的修改加入后,重新push,修改后文件内容为
init
local
remote
我们再push一次,仍然是依次点击红框内的按钮
大功告成!
②eclipse解决冲突
当eclipse检测到冲突时,即文件出现红色的情况下
- 我们先将修改提交到本地仓库commit(不是commit and push)
- 然后再team->pull拉取gitlab上面的代码,拉取后,文件内的内容会标注出冲突的地方,看起来有点乱
init
<<<<<<< HEAD
local
=======
remote
>>>>>>> branch 'dev' of http://192.168.124.129/root/gitlabtest
- 我们手动将冲突文件内的代码,进行合并整理后,最后进行提交,add->commit and push
.gitignore
比如我们有个项目叫GitLab,我们想要忽略其中的一些不需要提交的文件,我们新建一个.gitignore文件(跟.git文件同级,即放在git根目录下)
# Created by .ignore support plugin (hsz.mobi)
### Eclipse template
**/.metadata
**/bin/
**/tmp/
**/*.tmp
**/*.bak
**/*.swp
**/*~.nib
**/local.properties
**/.settings/
**/.loadpath
**/.recommenders
**/.project
**/.classpath
# External tool builders
**/.externalToolBuilders/
# Locally stored "Eclipse launch configurations"
**/*.launch
# PyDev specific (Python IDE for Eclipse)
**/*.pydevproject
# CDT-specific (C/C++ Development Tooling)
**/.cproject
# CDT- autotools
**/.autotools
# Java annotation processor (APT)
**/.factorypath
# PDT-specific (PHP Development Tools)
**/.buildpath
# sbteclipse plugin
**/.target
# Tern plugin
**/.target.tern-project
# TeXlipse plugin
**/.target.texlipse
# STS (Spring Tool Suite)
**/.target.springBeans
# Code Recommenders
**/.target.recommenders/
### CVS template
**/CVS/
**/.cvsignore
**/.cvsignore
### JetBrains template
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
# CMake
**/cmake-build-debug/
**/cmake-build-release/
########################################idea IntelliJ################
**/.idea/
**/*.iws
**/*.ipr
**/*.iml
**/out/
**/target/
# mpeltonen/sbt-idea plugin
**/.idea_modules/
# JIRA plugin
**/atlassian-ide-plugin.xml
# Crashlytics plugin (for Android Studio and IntelliJ)
**/com_crashlytics_export_strings.xml
**/crashlytics.properties
**/crashlytics-build.properties
**/fabric.properties
**/.svn
### Java template
# Compiled class file
**/*.class
# Log file
**/*.log
**/logs/
**/log/
# Package Files #
**/*.war
**/*.nar
**/*.ear
**/*.zip
**/*.tar.gz
**/*.rar
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
**/hs_err_pid*
现在的文件目录结构如图
然后
git rm -r --cached .
git add .
git commit -m 'update .gitignore'
git push origin
push成功后,我们可以看到gitlab服务器上面把这些文件忽略掉了,没有提交上去
如果有多个项目,跟GitLab在同级目录下,push的时候,也不会提交到gitlab上面去了