目录

为什么不用gitlab

无界面版本GIT,最轻量了,只是维护稍困难

国产开源git——gogs文档

为什么不用gitlab

先安装一个gitlab

docker run   -p 8112:80 -p 222:22 --name gitlab \
-v /home/gitlab/config:/etc/gitlab  \
-v /home/gitlab/logs:/var/log/gitlab \
-v /home/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce

磁盘说:镜像好大

[root@iz2vcbxdfdrfac7remhtorz ~]# docker images|grep gitlab
docker.io/gitlab/gitlab-ce                latest              033bcfa1b036        6 days ago          2.09 GB
 

启动也是很慢,进入容器看看,有个2G+的embedded,里面内置了ruby python grafana postgresql  redis 等好多东西

root@7df8e580d553:/opt/gitlab# pwd 
/opt/gitlab
root@7df8e580d553:/opt/gitlab# du -sh *
3.1M    LICENSE
4.2M    LICENSES
32K    bin
188K    dependency_licenses.json
2.0G    embedded
240K    etc
4.0K    init
56K    licenses
4.0K    service
520K    sv
8.0K    var
32K    version-manifest.json
12K    version-manifest.txt
 

空闲情况下的cpu memory消耗也是杠杠滴

gitLab如何往分支推送代码_gitLab如何往分支推送代码

模板

gitLab如何往分支推送代码_gitLab如何往分支推送代码_02

 

无界面版本GIT,最轻量了,只是维护稍困难

1.1 安装Git(无web界面版git仓库)

yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel (可选)
yum install git

1.2 创建一个git用户组和用户

groupadd git
useradd git -g git

1.3、idea/git bash免密登录拉取linux git代码

1.创建免密登录需要的文件及配置权限
cd /home/git/ &&mkdir .ssh &&chmod 755 .ssh &&touch .ssh/authorized_keys &&chmod 644 .ssh/authorized_keys

2.在Linux初始化一个仓库用于测试并设置权限
git init --bare /home/gitrepo/test1.git  &&chown -R git:git  /home/gitrepo

3.Windows打开Git bash,ssh-keygen -t rsa -C "523083921@qq.com"生成公钥rsa.pub,将其写如authorized_keys里面

4.Git bash 执行 git clone git@192.168.203.132:/home/gitrepo/test1.git 或idea拉取Linux git仓库的项目到本地Windows

特别注意:
① 这里是无界面版本的git仓库,只能通过ssh协议拉取代码,即 git clone linuxUserName@IP:/仓库在服务器的绝对路径 
②这里专门建了一个用户git来管理仓库目录,直接使用root用户也是可以的,直接将window生成的rsa.pub写到/home/root/.ssh/authorized_keys,git clone root@IP:/仓库在服务器的绝对路径 即可免密拉取代码
③使用github\gitee\gitlab等有界面的git仓库一般还支持http/https协议拉取代码


5.安全设置,指定/etc/passwd 的git用户命令解释器:...git:/bin/bash改为...git:/usr/bin/git-shell

1.4、idea push新项目到linux git仓库

1.idea创建新springboot项目,idea打开terminal命令行
2.git init 初始化本地仓库
3.git add . 将当前文件夹下所有文件加入版本管理
4.git commit -m "init commit。。。" 提交到本地仓库,这时git branch可以看到一个master分支
5.先手动在Linux git仓库目录建立该仓库并赋予权限:git init --bare /home/gitrepo/test2.git &&chown -R git:git  /home/gitrepo/  如果使用gitee等第三方库:在gitee创建bio-nio-netty.git这个仓库
6.git remote add origin   git@192.168.203.132:/home/gitrepo/test2.git  即可在Linux的 仓库test2.git添加新分支origin; ;如果使用gitee等第三方库:git remote add origin  git@gitee.com:XX2020/bio-nio-netty.git,)
7.git push -u origin master  将本地的master分支推到远程的origin分支

其它:idea push新项目到第三方仓库,如github

1.将ssh公钥设置到github:用户->Settings->ssh keys
2.github创建仓库
2.idea terminal进行push
  echo "# jwolf" >> README.md
  git init
  git add README.md
  git commit -m "first commit"
  git remote add origin git@github.com:jwolf123456/test1.git
  git push -u origin master

 


安装,100M左右

docker run --name=gogs  -p 8112:3000 -v /home/data/git-gogs:/data gogs/gogs

首次访问设置

gitLab如何往分支推送代码_ide_03

gitLab如何往分支推送代码_gitLab如何往分支推送代码_04

 

创建项目test2

gitLab如何往分支推送代码_gitLab如何往分支推送代码_05

idea terminal推送本地项目到test2,密码为上面设置的管理员账户/密码

git remote add origin git@47.108.28.18:admin_gogs/test2.git
git push -u origin master

拉取gogs上的其它项目到本地,使用http协议可以直接拉取

gitLab如何往分支推送代码_ide_06

,SSH协议可能是设置问题不能拉取,但是仓库目录是映射到宿主机了的,故可直接用root用户拉取


root@IP:/home/data/git-gogs/git/gogs-repositories/admin_gogs/test.git


gitLab如何往分支推送代码_git_07