赞
踩
Git是版本控制系统
Github是在线的基于Git的代码托管服务,GitHub提供付费账户和免费账户,都可以创建公开的代码仓库,可以创建私有的代码仓库
Gitlab 创建免费的私人仓库
Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目
Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件
Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持
1、克隆git资源作为工作目录 git clone 仓库地址
2、完后修改后,将文件提交到暂存区 git add
3、再提交到版本仓库 git commit
4、最后提交到远程仓库 git push
工作区:就是你在电脑里能看到的目录
暂存区:英文叫stage, 或index。一般存放在"git目录"下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)
版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库
配置用户名和邮箱(必须)
git config --global user.name "用户名"
git config --global user.email "邮箱"
初始化命令 git init 将一个文件添加到暂存区 git add 文件名 将当前目录下的文件添加到暂存区 git add . 将文件提交到版本仓库 git commit -m "描述" 查看版本日志 git log 查看暂存区的状态 git status 返回到上一个版本 git reset --hard HEAD^ 一个^代表一个版本 返回到指定的版本 git reset --hard 版本编号 从本地上传到远程仓库 git push -u origin 分支名字 指定远程仓库地址 git remote add origin 仓库地址
ssh 链接:
客户机上产生公钥上传到gitlab的SSH-Keys里,git clone下载和git push上传都没问题,这种方式很安全
ssh连接github:
登录github,这是github的主页(如果没有账户需要注册)
ssh-keygen
cat .ssh/id_rsa.pub
web页面配置密钥
先使用 git reflog 查看版本号
每提交一个版本对应一个版本号
查看版本号
git reflog
回退到上一个版本
git reset --hard HEAD^
穿梭到指定版本
git reset --hard 版本id
创建分支
git branch 分支名字
查看分支
git branch *在谁上代表在谁上面
切换分支
git checkout 分支名字 在分支上提交的,其他分支看不到
合并分支
合并给谁,在哪个分支上执行
git merge 被合并的分支
删除分支
git branch -d 分支名字
yum -y install curl openssh-server openssh-clients cronie policycoreutils-python
阿里云的源
vim /etc/yum.repos.d/git.repo
[gitlab-ce]
name=gitlab-ce
baseurl=http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7
Repo_gpgcheck=0
Enabled=1
gpgcheck=0
清华大学的源
vim /etc/yum.repos.d/git.repo
[gitlab-ce]
name=Gitlab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
gpgcheck=0
enabled=1
官方源
vim /etc/yum.repos.d/git.repo [runner_gitlab-ci-multi-runner] name=runner_gitlab-ci-multi-runner baseurl=https://packages.gitlab.com/runner/gitlab-ci-multi-runner/el/7/$basearch repo_gpgcheck=1 gpgcheck=0 enabled=1 gpgkey=https://packages.gitlab.com/runner/gitlab-ci-multi-runner/gpgkey sslverify=1 sslcacert=/etc/pki/tls/certs/ca-bundle.crt metadata_expire=300 [runner_gitlab-ci-multi-runner-source] name=runner_gitlab-ci-multi-runner-source baseurl=https://packages.gitlab.com/runner/gitlab-ci-multi-runner/el/7/SRPMS repo_gpgcheck=1 gpgcheck=0 enabled=1 gpgkey=https://packages.gitlab.com/runner/gitlab-ci-multi-runner/gpgkey sslverify=1 sslcacert=/etc/pki/tls/certs/ca-bundle.crt metadata_expire=300
yum -y install gitlab-ce
绑定本机的IP地址或者域名
vim /etc/gitlab/gitlab.rb *** ## GitLab URL ##! URL on which GitLab will be reachable. ##! For more details on configuring external_url see: ##! https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-theexternal-url-for-gitlab # 没有域名,可以设置为本机IP地址 external_url 'http://10.0.1.86' *** 使用域名需要做域名解析 vim /etc/hosts /etc/hosts的域名要和配置文件里面的域名一致
gitlab-ctl reconfigure
gitlab-ctl start
gitlab-rails console -e production
2. 执行如下命令, 修改root密码为你想要的密码, 无需重启即可完成设置
u=User.where(id:1).first # u定义为root用户
u.password='你的密码' # 设置root密码, 注意需要符合密码强度
u.password_confirmation='你的密码' # 确认当前密码
u.save! # 保存操作
quit # 退出交互界面
创建目录来存放证书 mkdir -p /etc/gitlab/ssl cd /etc/gitlab/ssl/ 生成密钥 openssl genrsa -out " 77cloud.com.key" 2048 写自己的域名 生成证书请求文件 openssl req -new -key "77cloud.com.key" -out "77cloud.com.csr" 生成证书 openssl x509 -req -days 365 -in "77cloud.com.csr" -signkey "77cloud.com.key" -out "77cloud.com.crt" gitlab还需要配pem证书文件 生成pem证书文件 openssl dhparam -out dhparam.pem 2048 修改文件的权限 (证书文件的权限为600) chmod 600 /etc/gitlab/ssl/* 修改配置文件 vim /etc/gitlab/gitlab.rb external_url 'https://gitlab.example.com' 13行左右 nginx['redirect_http_to_https'] = true 改成true nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.example.com.crt" 输入自己的证书文件 nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.example.com.key" 输入自己的密钥文件 # nginx['ssl_dhparam'] = "/etc/gitlab/ssl/dhparam.pem" # Path to dhparams.pem,eg. /etc/gitlab/ssl/dhparams.pem
注意事项:
需要关闭ssl安全认证
方法一:
git config --global http.sslVerify false
方法二:
vim .gitconfig
[http]
sslVerify = false
用户角色
| 角色 | 权限说明 |
| --------- | ------------------------------------------------------------ |
| Guest | 可以创建issue、发表评论,不能读写版本库 |
| Reporter | 可以克隆代码,不能提交,QA、PM可以赋予这个权限 |
| Developer | 可以克隆代码、开发、提交、push,RD可以赋予这个权限 |
| Master | 可以创建项目、添加tag、保护分支、添加项目成员、编辑项目,核心RD负责人可以赋予这个权限 |
| Owner | 可以设置项目访问权限 - Visibility Level、删除项目、迁移项目、管理组成员,开发组leader可以赋予这个权限 |
PM(项目主管/项目经理)在gitlab创建任务,分配给开发人员
开发人员领取任务后,在本地使用git clone拉取代码库
开发人员创建开发分支(git checkout -b dev),并进行开发
开发人员完成之后,提交到本地仓库(git commit )
开发人员在gitlab界面上申请分支合并请求(Merge request)
PM在gitlab上查看提交和代码修改情况,确认无误后,确认将开发人员的分支合并到主分支(master)
开发人员在gitlab上Mark done确认开发完成,并关闭
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。