curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh|sudo bash
yum install -y gitlab-ce #注意安装名称
vim /etc/gitlab/gitlab.rb
# 默认nginx等相关都安装了/最好独立服务器/并且配置https
external_url 'https://sh-gitlab.vipthink.com' # 注意带s
gitlab_rails['time_zone'] = 'Asia/Shanghai' # 时区
################################################################################
## GitLab NGINX
##! Docs: https://docs.gitlab.com/omnibus/settings/nginx.html
################################################################################
nginx['enable'] = true
nginx['client_max_body_size'] = '250m'
nginx['redirect_http_to_https'] = true
nginx['redirect_http_to_https_port'] = 80
nginx['ssl_certificate'] = "/etc/gitlab/ssl/1_vipthink.cn_bundle.crt"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/2_vipthink.cn.key"
gitlab-ctl reconfigure
gitlab-ctl restart
# 完整配置/包含优化,防止运行一段时间CPU过高
external_url 'https://gitlab.grayvip.com'
gitlab_rails['time_zone'] = 'Asia/Shanghai'
gitlab_rails['object_store']['enabled'] = false
gitlab_rails['object_store']['connection'] = {}
gitlab_rails['object_store']['storage_options'] = {}
gitlab_rails['object_store']['proxy_download'] = false
gitlab_rails['object_store']['objects']['artifacts']['bucket'] = nil
gitlab_rails['object_store']['objects']['external_diffs']['bucket'] = nil
gitlab_rails['object_store']['objects']['lfs']['bucket'] = nil
gitlab_rails['object_store']['objects']['uploads']['bucket'] = nil
gitlab_rails['object_store']['objects']['packages']['bucket'] = nil
gitlab_rails['object_store']['objects']['dependency_proxy']['bucket'] = nil
gitlab_rails['object_store']['objects']['terraform_state']['bucket'] = nil
unicorn['worker_processes'] = 2
unicorn['worker_memory_limit_min'] = "1024 * 1 << 20"
unicorn['worker_memory_limit_max'] = "1280 * 1 << 20"
postgresql['shared_buffers'] = "128MB"
postgresql['max_worker_processes'] = 2
nginx['enable'] = true
nginx['client_max_body_size'] = '250m'
nginx['redirect_http_to_https'] = true
nginx['redirect_http_to_https_port'] = 80
nginx['ssl_certificate'] = "/etc/gitlab/gitlab.grayvip.com.pem"
nginx['ssl_certificate_key'] = "/etc/gitlab/gitlab.grayvip.com.key"
prometheus_monitoring['enable'] =false
二:Git安装和基本操作
git本地库的创建和操作使用(Linux)
git checkout -b linyaohong # 从当前分支切一个新的分支
git push --set-upstream origin lin # 把本地分支推到远端仓库
git tag xxxxxxxxxxxx # 打 tag
git git push origin xxxxxxxxxxxx # 推送tag
git merge lin # 合并lin分支到当前分支
yum -y install git #安装
mkdir testgit && cd testgit/ #创建一个空目录
git init #创建第一个本地仓库
git config --global user.email "lin@163.com" #全局配置
git config --global user.name "Linyaohong" #全局配置
git add readme.txt #添加文件到缓冲区 readme.txt 为需要提交的文件
git commit -m "提交的注释" #提交缓冲区文件到版本库
git log #显示提交日志
git log --pretty=oneline #简单的显示提交日志
git log #退回老版本前,用git log可以查看提交历史,以便确定要回退到哪个版本
git reset --hard commit_id #退回到历史版本
#或者git reset --hard HEAD (一个版本就是HEAD^,上上一个版本就是HEAD^^) HEAD代表当前版本
git reflog #查看命令历史、以便确定要回哪个版本
git status #查看状态和svn st相似
修改:关于提交需要注意的一个小问题:
第一次修改 -> git add -> 第二次修改 -> git commit -m "提交的注释" (不带文件名)
第一次修改 -> git add -> 第二次修改 -> git add -> git commit -m "提交的注释" (不带文件名)
或者 -> git commit -m "提交的注释" 文件名
#这两种方式是有区别的:(在命令行模式有很大区别)
不带文件名 只提交缓冲区的内容、不提交第二次修改的内容
带上文件名 即提交缓冲区(第一次add的内容)、也提交第二次修改的内容
图解:
比较差异
提交后git diff HEAD -- readme.txt #可以查看工作区和版本库里面最新版本的区别
git diff HEAD -- newfile #比较差异
修改
#当修改了文件时候:没add的情况下或者add的情况下
git checkout -- readme.txt #单个文件恢复到修改之前的状态
git reset --hard HEAD #全部恢复到没修改之前的状态
#当已经commit的时候
git reflog #找到提交前的版本
git reset --hard 968689e #退回版本即可
删除文件
#如果新增了很多文件、没有add 也没有ci 直接删除没有任何影响
#如果新增了test.txt文件、并且add了、没有commit然后本地又删除了
git checkout -- test.txt #恢复到本地
git reset --hard HEAD #退回到当前版本、并且删除新增的文件/
#如果新增了test.txt文件 并且add commit 然后本地删除
#两个选择:
1 git reset --hard HEAD #恢复
2 git rm test.txt #从库中删除
git commit -m "备注" #提交、彻底清除text.txt