github
简介:
github是一个git版本库的托管服务,是目前全球最大的软件仓库,拥有上百万开发者用户,也是软件开发和寻找资源的最佳途径,Github不仅可以托管各种git版本仓库,还拥有美观的web界面,代码可以被任何人克隆,使得开发者为开源项共享代码变得更加容易,也有付费的私有库,但具有更高性价比
创建仓库操作:
按照提示在工作目录输入命令即可
添加远程仓库在github网站,根为origin可以指定是哪个本地仓库
通常用在项目第一次上传
git remote add origin git@github.com:lijiahao0302/git_data.git
查看是否成功创建
git remote
做免密钥
ssh-keygen -t rsa -P '' -f /root/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub
复制生的密钥
1
2
3
4
将主干分支推送上去
git push -u origin master
add:也可以将分支推送上去
git branch -M main
git push -u origin main
回到web界面查看
下载方式:
将下载连接粘贴
下载到/tmp目录下
cd /tmp
git clone git@github.com:lijiahao0302/git_data.git
gitlab
简介:
gitlab的安装
官网安装gitlab文档:
https://gitlab.com
使用官网上的源
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
配置系统防火墙,开启HTTP和SSH端口(关闭iptables或开放ssh)
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
安装Postfix以发送通知邮件
sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix
安装
sudo yum install gitlab-ce-12.10.13-ce.0.el7.x86_64
官网直接下载包(建议)
https://packages.gitlab.com/gitlab/gitlab-ce
清华源下载
cd /etc/yum.repos.d/
vim /etc/yum.repos.d/gitlab-ce.repo
[gitlab-ce]
name=gitlab-ce
baseurl=http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el6
Repo_gpgcheck=0
Enabled=1
Gpgkey=https://packages.gitlab.com/gpg.key
yum makecache
yum -y install gitlab-ce.x86_64
我自己有包
yum install -y curl policycoreutils-python openssh-server
rpm -ivh gitlab-ce-10.2.3-ce.0.el7.x86_64.rpm
修改配置文件,重新配置
vim /etc/gitlab/gitlab.rb
gitlab-ctl reconfigure
gitlab-ctl status
常见的命令和目录
目录:
/opt/gitlab/:gitlab程序安装目录
/var/opt/gitlab/:gitlab目录数据目录
ll /var/opt/gitlab/git-data/:存放仓库数据
命令:
gitlab-ctl reconfigure:更改配置文件后需重新配置
gitlab-ctl status:查看目前gitlab所有服务运行状态
gitlab-ctl start/stop:开启/停止gitlab服务
gitlabctl start/stop nginx 单独 开启/停止 某个服务
gitlab-ctl tail:查看所有服务的日志
进入网站进行配置:
输入:192.168.1.10
gitlab汉化
安装汉化包:gitlab-patch-zh.tat.gz
tar xf gitlab-patch-zh.tat.gz
汉化和版本一定要一致
cat /root/gitlab/VERSION
停止服务器
gitlab-ctl stop
cd /root/gitlab/
对比版本
git diff v10.2.3 v10.2.3-zh > ../10.2.3-zh.diff
补丁找到区别自动输出
vim ../10.2.3-zh.diff
打补丁
yum -y install patch
patch -d /opt/gitlab/embedded/service/gitlab-rails/ -p1 < /root/10.2.3-zh.diff
启动重新配置
gitlab-ctl start
gitlab-ctl reconfigure
汉化成功
修改登陆界面提示信息和logo
效果图:
创建组和项目以及用户
创建过程
先创建组,然后创建项目和用户
创建组
创建项目
创建ssh密钥认证并发送本地代码
显示需要认证ssh才可以连接
回到工作目录,干掉之前github上的仓库
git remote remove origin
选择ssh传输
新建一个origin远程仓库并将本地master仓库推送到远程仓库中
git remote add origin git@192.168.1.10:test/git_data.git
git push -u origin master
刷新一下
创建一个新的文件推到远程仓库的过程:
创建本地文件: touch test.txt
将本地文件加入到缓存区 git add test.txt
将文件推送到本地仓库 git commit -m "add test.txt to local store"
将本地仓库文件推送到远程仓库 git push -u origin master
关闭自动注册,防止外来人员注册登录
注册选项栏消失
当开发组需要使用时,为开发组创建用户
创建用户
将dev用户加入到test组中,让其可以管理git_data仓库
换一个浏览器登录dev用户
修改初始密码
登陆后项目空空如也
使用root将用户dev加入test组
dev用户刷新页面,加入密钥可以下载
当然也需要使用开发用户的密钥才可以下载,使用另一台虚拟机上传密钥
回到dev用户的服务器中输入git clone 复制的内容 即可
git clone git@192.168.1.10:test/git_data.git
初次使用dev用户实现上传功能
cd git_data/
touch newfile.txt
git add newfile.txt
git commit -m "add newfile.txt to localstore"
此时需要进行用户认证,一定要web中相匹配
git config --global user.name "dev"
git config --global user.email dev@qq.com
这两项配置加入到~/.gitconfig下,日后可以直接修改
项目中修改用户可以手动配置配置文件或者进入项目去掉--global配置,优先级大于全局配置
git config --global user.name "dev"
git config --global user.email 1111@qq.com
git commit -m "add newfile.txt to localstore"
推送到远程仓库
git push -u origin master
生产环境下不允许开发直接推到主干上,要为其创建一个分支
代码合并流程
web界面设置禁止开发直接推送到主线上
保护设置
开发端服务器进行测试
touch 123.txt
git add .
git commit -m "newfile 123.txt"
git push origin master
操作:
实现流程
两端操作
git_pull
当有多个dev用户开发一个项目时,当一个dev用户上传并合并master,此时其他dev用户需要使用 git pull 重新拉取master代码,实现本地和远程仓库一致才可以上传
dev操作
git branch -b dev
touch 456.txt
git add .
git commit -m "newfile 456.txt"
git push -u origin dev
web登录dev用户,发起请求合并
此时进入管理员用户
进入到git_data项目,审核后如果没问题进行合并
如果开发要开发新的东西,需要拉取项目,创建一个新的分支,然后创建新的文件,提交到自己的分支,最后请求合并
dev操作将代码推送到远程仓库(记住新建分支):
git clone git@192.168.1.10:test/git_data.git
git clone http://192.168.1.10/maven/git_data.git
进入到web端请求合并
最后master选择remove掉dev分支(或者dev用户自己删除),新的项目重新创建分支
git整体避坑流程:
初次上传项目时,按照项目下给的命令,创建一个origin与远程仓库进行连接,如果开启了保护模式,只能创建一个新的分支将代码上传请求合并而无法直接推到master主线上,但是如果代码上传的请求被root用户通过且分支尚未删除,此分支无法继续上传,需要另外建立分支才可以上传,root用户一般删除一个分支之后会删除掉这个分支第二次修改已经被远程仓库管理的项目时只需要git clone即可,不需要创建origin
jenkens无法认证url无法拉取git上面的的代码:首先把开发使用的服务器的公钥复制到gitlab(developkeys),同时要在jenkins服务器上声明自己是谁(git config),而且这个用户身份必须是gitlab许可的用户,需要将加入的用户身份修改成dev(一般是开发用户),才可以实现url正常获取
gitlab踩到的坑
遇到了502坏的网关
如果开了toncat,切记修改端口
官方解决的问题
sudo gitlab-ctl restart sidekiq
发布者:LJH,转发请注明出处:https://www.ljh.cool/35824.html