git搭建简单仓库

git搭建简单私人仓库

目的:搭建一个私人仓库并测试上传文件、下载文件
实验基本环境:
一台gitlab服务器:192.168.10.1
一台测试机client:192.168.10.2
由于是实验环境所以关闭防火墙selinux

1.首先安装前提软件:

[root@gitlab ~]# yum -y install curl policycoreutils openssh-server openssh-clients postfix

2.下载gitlab安装包(这里用的清华源):

[root@gitlab ~]# https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm

3.安装软件包(可以使用已提前下载好的rpm包):

[root@gitlab ~]# yum -y install gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm

4.修改配置文件,指定为本机ip地址:
vim /etc/gitlab/gitlab.rb
在这里插入图片描述

5.配置启动gitlab(内存设置最少为4gb):

[root@gitlab ~]# gitlab-ctl reconfigure

6.查看gitlab状态:

[root@gitlab ~]# gitlab-ctl status
run: gitaly: (pid 727) 69s; run: log: (pid 726) 69s
run: gitlab-monitor: (pid 729) 69s; run: log: (pid 728) 69s
run: gitlab-workhorse: (pid 718) 69s; run: log: (pid 717) 69s
run: logrotate: (pid 731) 69s; run: log: (pid 730) 69s
run: nginx: (pid 723) 69s; run: log: (pid 722) 69s
run: node-exporter: (pid 736) 69s; run: log: (pid 711) 69s
run: postgres-exporter: (pid 734) 69s; run: log: (pid 733) 69s
run: postgresql: (pid 721) 69s; run: log: (pid 714) 69s
run: prometheus: (pid 725) 69s; run: log: (pid 724) 69s
run: redis: (pid 716) 69s; run: log: (pid 708) 69s
run: redis-exporter: (pid 738) 69s; run: log: (pid 732) 69s
run: sidekiq: (pid 715) 69s; run: log: (pid 707) 69s
run: unicorn: (pid 701) 70s; run: log: (pid 695) 70s

7.登录gitlab(可以在宿主机网页测试登录):
默认创建root(管理员)密码,最少8位

http://192.168.10.1

8.取消注册功能:
目的:本身为公司内部仓库,为防止他人注册登录并进项代码下载。

登录gitlab--admin area(顶部菜单栏小扳手图标)--左侧面板settings--Sign-up-Restrictions--去除勾选sign-up enabled --下拉选save保存

9.修改登录欢迎界面:
目的:本公司员工需要使用代码时可联系管理员

登录gitlab--admin area--Appearance--填写管理员联系方式和logo--save

10.创建项目:
(1)创建group

登录gitlab--admin(root) area--new group

(2)创建用户

登录gitlab--admin area--new user--添加用户名、邮箱--create--edit--修改密码

注意将用户加入组
(3)创建项目名为accp

登录gitlab--admin area--new project--注意选择组

Gitlab用户在组中有五种权限:
Guest:可以创建issue、发表评论,不能读写版本库
Reporter:可以克隆代码,不能提交,测试、产品经理可以赋予这个权限
Developer:可以克隆代码、开发、提交、push,开发人员可以赋予这个权限
Master:可以创建项目、添加tag、保护分支、添加项目成员、编辑项目,核心RD负责人可以赋予这个权限
Owner:可以设置项目访问权限 - Visibility Level、删除项目、迁移项目、管理组成员,开发组leader可以赋予这个权限

Gitlab中的组和项目有三种访问权限:
Private:只有组成员才能看到
Internal:只要登录的用户就能看到
Public:所有人都能看到
11.上传本机的ssh-key:
(1)本地用户创建秘钥

[root@gitlab ~]#ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
91:9a:ce:f6:58:68:a4:fc:05:20:b1:1a:15:2a:1b:b7 root@localhost.localdomain
The key's randomart image is:
+--[ RSA 2048]----+
|  +.             |
| o o     .       |
|= + .   o        |
|.* o . o .       |
|o E   = S        |
|   . = o         |
|    o * o        |
|     + =         |
|      o .        |
+-----------------+

(2)复制公钥内容

[root@gitlab ~]#cat /root/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCeoZmnncEkABaVxMzu10CX
FJYsXgAxAW+DpTaDbbYccPTvxeZeFevn24MWtJfqLAGVucbWRm+9Dx+
dIc0AJlcXV+31T7tj4WY4H8emTLZu2nDjuJRfHl7fgbwWn0UG4X0q3k5MJS
gR1ABmZj7d+lc8KpPO5o6aYyUbpJsPj2k6GL8U7hYdx5kUiJRyIgQEseX/IJ
eDTUG5wKlVsKmu1nDBt8DNkywAXf293muUNTr3nPf2DK/+43M5r1XiJ3T
TbiNxmtBqTd9iy3T307Jo06YEkX+U2Zz3Na06367+KKhTmNsuWdUqcC5K
AqEX0/emNeQ3QZM1ElbA/iFTuRdPWavf root@localhost.localdomain

(3)粘贴到web界面

右上角--用户--settings--SSH Keys

12.(在web可先创建一个测试文件),克隆下载项目

[root@gitlab ~]#git clone git@192.168.10.1:dev/accp.git
正克隆到 'accp'...
The authenticity of host '192.168.10.1 (192.168.10.1)' can't be established.
ECDSA key fingerprint is 15:a2:e3:bd:63:b8:d4:80:de:c7:5b:62:54:d2:68:07.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.10.1' (ECDSA) to the list of known hosts.
warning: 您似乎克隆了一个空版本库。

13.创建一个文件夹并初始化为git版本库

[root@gitlab /]# mkdir /data
[root@gitlab /]# cd /data/
[root@gitlab data]# git init 
初始化空的 Git 版本库于 /data/.git/

14.修改文件内容再上传代码

[root@gitlab data]#cd accp/ 
[root@gitlab accp]# echo 123456 > new.txt

由于未在web中创建测试文件所以克隆下来的为空目录,可以创建一个文件进行上传
15.将文件上传到缓存区并上传到本地仓库,然后推送到web中

[root@gitlab accp]# git add .
[root@gitlab accp]# git commit -m "add new.txt"
[master d08a1b0] add new.txt
 1 file changed, 1 insertion(+)
 create mode 100644 new.txt
[root@gitlab accp]# git push -u origin master

16.在web上查看
在这里插入图片描述

17.在客户机,普通开发人员更新代码:
(1)上传ssh秘钥(跟git服务器一样)
(2)关联远程数据库

[root@cllient]# mkdir /data
[root@client]# cd /data
[root@client data]# git init
初始化空的 Git 版本库于 /data/.git/
[root@client data]#git remote add origin git@192.168.10.1:web/accp.git

(3)下载同步代码

[root@client data]#git pull origin master
The authenticity of host '192.168.10.1(192.168.10.1)' can't be established.
ECDSA key fingerprint is 15:a2:e3:bd:63:b8:d4:80:de:c7:5b:62:54:d2:68:07.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.10.1' (ECDSA) to the list of known hosts.
remote: Counting objects: 6, done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 6 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (6/6), done.
来自 192.168.10.1:web/accp
 * branch            master     -> FETCH_HEAD

(4)创建分支,修改代码,然后进行代码的上传

[root@client data]#git config --global user.email "dev@qq.com"
[root@client data]#git config --global user.name "dev"
[root@client data]#git checkout -b dev
切换到一个新分支 'dev'
[root@client data]#echo 6666666 > new111.txt
[root@client data]#git add .
[root@client data]#git commit -m "add new111.txt"
[dev 48fa79e] add new111.txt
 1 file changed, 1 insertion(+)
 create mode 100644 new111.txt

(5)推送dev分支(普通用户无法推送master,so用dev分支推送的)

[root@client data]#git push -u origin ops
Counting objects: 4, done.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 266 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
remote: 
remote: To create a merge request for dev, visit:
remote:   http://192.168.43.10/web/accp/merge_requests/new?merge_request%5Bsource_branch%5D=dev
remote: 
To git@192.168.10.2:web/accp.git
 * [new branch]      dev -> dev

18.在web查看dev分支
在这里插入图片描述

最后还有一些git常用命令:
git remote add [remote] [url] #添加(关联)远程库
git remote set-url [remote] [url] #修改远程仓库
git clone [url] #克隆远程仓库项目
git remote #查看指定远程仓库命名简写
git remote –v #查看远程仓库详细信息以及名称对应URL
git push -u remote master #第一次推送master分支的所有内容
git fetch remote [branch/tag] #下载远程仓库的所有变动
git pull remote [branch/tag] #拉取主分支最新版本(可以拉取其他分支)
git push remote [branch/tag] --force #强行推送当前分支至远程分支,及时冲突
git push remote [branch/tag] --all #推送所有分支到远程仓库
git remote rename [oldname] [newname] #修改远程仓库名称
git remote remove [name] #删除远程仓库名称以及URL地址

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
公司搭建Git仓库是为了方便团队协作和版本控制。下面是一种常见的搭建Git仓库的方式: 1. 选择合适的Git服务器:常见的选择有GitLab、GitHub、Bitbucket等。根据公司需求和预算选择适合的服务器。 2. 安装和配置Git服务器:根据选择的Git服务器,按照官方文档进行安装和配置。这通常涉及设置管理员账号、访问权限、仓库创建等。 3. 创建项目仓库:在Git服务器上创建一个新的项目仓库。可以选择公开或私有的仓库,根据团队需求设置访问权限。 4. 配置本地Git环境:在开发人员的本地机器上安装Git,并进行基本配置,包括设置用户名和邮箱等。 5. 克隆远程仓库:使用Git命令或者图形化工具,将远程仓库克隆到本地机器上。 6. 开发和提交代码:在本地进行代码开发,并使用Git命令将代码提交到本地仓库。 7. 推送到远程仓库:将本地仓库的代码推送到远程仓库,使得团队成员可以获取最新的代码。 8. 分支管理和合并:使用Git的分支功能进行并行开发和版本控制,合并分支时需要进行代码审查和冲突解决。 9. 团队协作和代码审查:利用Git服务器提供的协作功能,团队成员可以共享代码、进行代码审查和讨论。 10. 持续集成和部署:结合Git服务器和持续集成工具,实现自动化的代码构建、测试和部署流程。 以上是一种常见的搭建Git仓库的方式,具体步骤可能会因为公司需求和选择的Git服务器而有所不同。希望对你有帮助!
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

马总123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值