Git系列四之在本地服务器搭建gitlab仓库管理(centeros环境下)

  现在本地已经创建了git仓库,又在gitlab上创建了一个git仓库,并且让这两个仓库进行远程同步,这样gitlab仓库既可以备份也可以与他人协作管理远程仓库以及根据需要推送或拉取数据。 
  管理远程仓库包括了如何添加远程仓库、移除无用远程仓库、查看远程仓库、修改远程仓库等。

1.1部署开源仓库

GitLab 是一个用于仓库管理系统的开源项目。

1.安装配置gitlab依赖项 
如想使用Postfix来发送邮件,在安装期间请选择‘Internet Site‘. 您也可以用sendmai或者 配置SMTP服务并使用SMTP发送邮件.在 Centos7系统上, 下面的命令将在系统防火墙里面开放HTTP和SSH端口.

  1. [[email protected]-node1 ~]# yum install curl openssh-server postfix
  2. [[email protected]-node1 ~]# systemctl enable sshd postfix
  3. [[email protected]-node1 ~]# systemctl start sshd postfix
  4. [[email protected]-node1 ~]# firewall-cmd --permanent --add-service=http
  5. [[email protected]-node1 ~]# systemctl reload firewalld

2.添加GitLab仓库,并安装到服务器

  1. [[email protected]-node1 ~]# curl -sS http://packages.gitlab.cc/install/gitlab-ce/script.rpm.sh | sudo bash
  2. [[email protected]-node1 ~]# yum install gitlab-ce

3.启动GitLab

   1.gitlab-ctl reconfigure

2.浏览到主机名和登录Browse to the hostname and login 
       3.首次访问GitLab,系统会让你重新设置管理员的密码,设置成功后会返回登录界面. 
       4.默认的管理员账号是root,如果你想更改默认管理员账号,请输入上面设置的新密码登录系统后修改帐号名.

5.创建key

[[email protected] demo]# ssh-keygen   #一路回车
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:
48:94:9a:65:cd:0f:f3:17:c6:dc:3c:28:0a:bb:47:98 [email protected]
The key‘s randomart image is:
+--[ RSA 2048]----+
|      .+   o +   |
|     .= = . * +  |
|     =.= * o . . |
|    o.E.o o .    |
|      .oS  .     |
|      . .        |
|       .         |
|                 |
|                 |

  6.复制id_rsa.pub公钥


1

2

[[email protected] demo]# cat ~/.ssh/id_rsa.pub

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAyVSAhs+ZBTEwv5nMwyoordV4VBy+DoCyGBJcjqkcfagRyyGUZvS57T4rhgSpz2csMTtxBXAyo0vJltxPr8McsZmcDZ8+t5qr22h9wHULFs5uB5/uZ6CDomm<br>/rVtJjiT2l1Uzh14De1CJDbNRPTCbxvcD5Mi7Ko29epymdt8agYqV2+ROynYaSjqcKxuo6pXD/cGskO7JTOkek2wxmTFOxFQR/Ec1LtVk8ilcesENzMdeU4Nwr2lec6Lr++qKXQuO7a3vB4958Hfhh1JlRI<br>ShDuHBOsFChG+vJim6tl123k7jjePHxJhUORhVMpmD4pMNwN+NYv1ta3J3ZSW6v5uWxw== [email protected]

  7.添加公钥至gitlab,如图1-6-1

图1-6-1添加服务器公钥

1.2添加远程仓库

1.gitlab创建仓库,进行远程同步,如图1-6-2 

图1-6-2gitlab创建远程仓库

2.使用git remote 添加远程仓库地址,选择SSH方式克隆。

  1. [[email protected]-node1 ~]# cd demo/ //必须是git init 初始化仓库目录
  2. [[email protected]-node1 demo]# git remote add origin [email protected]-node1:root/git_demo.gitxxx

1.3修改远程仓库

由于刚开始添加的远程仓库写错了url,现在通过如下命令进行url修改

  1. [[email protected]-node1 demo]# git remote set-url origin [email protected]-node1:root/git_demo.git

1.4查看远程仓库

如果已经配置了远程仓库服务器,可以运行 git remote命令。它会列出你指定每一个远程服务器的简写。

  1. [[email protected]-node1 demo]# git remote
  2. origin

也可以指定-v选项,会显示需要读写远程仓库git保存简写名称以及对应的URL地址。

  1. [[email protected]-node1 demo]# git remote -v
  2. origin [email protected]-node1:root/git_demo.git (fetch)
  3. origin [email protected]-node1:root/git_demo.git (push)

1.5推送远程仓库

将本地库更新内容推送至远程,用git push命令,实际上是将当前分支推送至远程仓库。 
由于远程库是新建立空的,我们在第一次推送时候,git默认是不会把本地master关联至远端的master,所以我们需要加上-u参数,这样git不但会把本地的master分支内容推送至远程仓库的master分支,并且还会将本地的master分支和远程master分支关联起来。在以后推送或者拉取时就可以简化命令。

  1. [[email protected]-node1 demo]# git push -u origin master
  2. Counting objects: 5, done.
  3. Compressing objects: 100% (2/2), done.
  4. Writing objects: 100% (5/5), 432 bytes | 0 bytes/s, done.
  5. Total 5 (delta 0), reused 0 (delta 0)
  6. To [email protected]-node1:root/git_demo.git
  7. * [new branch] master -> master
  8. 分支 master 设置为跟踪来自 origin 的远程分支 master。

如果推送冲突可以选择--force强行推送

  1. [[email protected]-node1 xuliangwei]# git push origin --force
  2. 如果一次都没有推送数据,可以选择—all一次全部推送至远程服务器
  3. [[email protected]-node1 xuliangwei]# git push origin --all

1.6克隆远程仓库

如果现在仓库已经有开发好的项目,需要加入进来开发,可以先clone整个项目。

  1. [[email protected]-node1 tmp]# git clone [email protected]-node1:root/git_demo.git
  2. 正克隆到 ‘git_demo‘...
  3. remote: Counting objects: 5, done.
  4. remote: Compressing objects: 100% (2/2), done.
  5. remote: Total 5 (delta 0), reused 0 (delta 0)
  6. 接收对象中: 100% (5/5), done.

1.7拉取远程仓库

简单的说,这个命令会访问远程仓库,从中取出你还没有的数据,或者git pull之后还是没有的数据。 
此前在添加的远程仓库的时候指定了仓库名origin,命令会自动将其添加为远程仓库并默认以origin为简写。 
所以,git fetch origin相当于从远程获取最新版本到本地,然后比较本地master分支和远程master分支差别最后进行合并。

  1. [[email protected]-node1 demo]# git fetch origin //拉取主分支最新版本(可以拉取其他分支)
  2. [[email protected]-node1 demo]# git fetch origin dev //获取dev分支最新数据

拉取数据,在生产环境中见到比较多的还是git pull相当于是从远程获取最新版本并merge到本地

  1. [[email protected]-node1 xuliangwei]# git pull origin master #拉取主分支最新版本(可以拉取其他分支)
  2. [[email protected]-node1 xuliangwei]# git pull origin dev //获取dev分支最新数据

上述命令其实相当于git fetch 和 git merge在实际使用中,git fetch更安全一些,因为在merge前,我们可以查看更新情况,然后再决定是否合并 
1.6.8更改远程仓库

如果想重新命名一个远程仓库名称。将test重命名为rainbow,可以通过git remote rename进行修改。 
注意:这同时会修改你的远程分支名字。之前引用test/master的现在会引用rainbow/master 
1.添加新远程分支,并赋予test为远程仓库名称

  1. [[email protected]-node1 git_demo]# git remote add test [email protected]-node1:root/git_demo.git
  2. [[email protected]-node1 git_demo]# git remote -v
  3. origin [email protected]-node1:root/git_demo.git (fetch)
  4. origin [email protected]-node1:root/git_demo.git (push)
  5. test [email protected]-node1:root/git_demo.git (fetch)
  6. test [email protected]-node1:root/git_demo.git (push)

2.修改test名称为rainbow名称

  1. [[email protected]-node1 git_demo]# git remote rename test rainbow
  2. [[email protected]-node1 git_demo]# git remote -v
  3. origin [email protected]-node1:root/git_demo.git (fetch)
  4. origin [email protected]-node1:root/git_demo.git (push)
  5. rainbow [email protected]-node1:root/git_demo.git (fetch)
  6. rainbow [email protected]-node1:root/git_demo.git (push)

1.9移除远程仓库

因为一些变动不再使用一些特定的镜像,可以通过git remote remove 远程仓库名称,移除远程仓库 
1.查看远程仓库

  1. [[email protected]-node1 git_demo]# git remote -v
  2. origin [email protected]-node1:root/git_demo.git (fetch)
  3. origin [email protected]-node1:root/git_demo.git (push)
  4. rainbow [email protected]-node1:root/git_demo.git (fetch)
  5. rainbow [email protected]-node1:root/git_demo.git (push)

2.移除不再使用的rainbow远程仓库

  1. [[email protected]-node1 git_demo]# git remote remove rainbow
  2. [[email protected]-node1 git_demo]# git remote -v
  3. origin [email protected]-node1:root/git_demo.git (fetch)
  4. origin [email protected]-node1:root/git_demo.git (push)

1.10Git远程仓库小结

  要添加一个仓库,首先必须知道仓库的地址,然后使用git remote add 命令添加远程仓库,也可使用git clone命令克隆。(Git支持多种协议,包括http、https,但通过ssh支持的原生git协议速度最佳。)

  要关联一个远程库,使用命令git remote add origin [email protected]:path/repo-name.git,关联后,使用命令git push -u origin master第一次推送master分支的所有内容,此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改

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

原文地址:https://www.cnblogs.com/zhangycun/p/10932241.html

时间: 2024-10-28 21:29:24

Git系列四之在本地服务器搭建gitlab仓库管理(centeros环境下)的相关文章

Git系列四之分支管理

Git系列四之分支管理 2017-03-02 分类:Git 阅读(1175) 评论(1) 来自为知笔记(Wiz) 原文地址:https://www.cnblogs.com/wangkaiok/p/cdcc9cf3f6e3d1a864a46177209a7c8f.html

samba &nbsp; 服务器搭建 &nbsp; 笔记 (生产环境常见的示例) &nbsp;

文件服务器  SAMBA 可以在线修改文件  samba   NFS   NFS网络共享文件系统 服务器端 mkdir   /share vim    /etc/exports /share  192.168.1.0/24(rw   sync)##将/share目录  共享给192.168.1.0 网段 客户端 #showmount   -e   192.168.1.120    ##查看主机192.168.1.120服务器   共享的目录 #mount   - t   nfs   192.16

云服务器搭建JDK+Tomcat+MySQL环境

一.首先租赁一台云服务器(阿里云服务器或者腾讯云服务器) 其实可以在windows电脑上使用VMware workstation来安装虚拟机进行操作,毕竟云服务器低配也是很贵的.不过可以使用学生价去租,不仅便宜还很方便,本次使用的是腾讯云ES云服务器,这个提供两个供学生使用的云服务器购买地址,阿里云服务器学生价和腾讯云服务器学生价. 二.准备工作 不管是云服务器还是虚拟机,都推荐使用xShell和xftp作为连接工具,主要是比较方便,具体操作自行Google... 三.yum安装JDK 一般云服

小论坛 之Linux服务器搭建Apache PHP mysql 环境

在前边搭建完了.net 的运行环境之后再来据需搭建数据库相关的环境,首先我选用的数据是mysql,在选择mysql的同时就考虑一下我使用Tomcat来控制数据库还是用别的呢,在这里我选用的是PHPmyadmin的方式原因就是很方便,如果用Tomcat那么我家里和公司里的电脑都要装上这个软件在操作,可是用PHPmyadmin就方便了随便一个浏览器输入账号密码就行了 接下来开始配置 安装apache2: sudo apt-get install apache2   安装php: sudo apt-g

Git本地服务器搭建

安装编译环境,执行以下命令 [root@centos6 ~]# yum -y install curl curl-devel zlib-devel openssl-devel perl cpio expat-devel gettext-devel gcc cc 在https://mirrors.edge.kernel.org/pub/software/scm/git/上下载最新Git安装文件git-2.9.5.tar.gz,并解压,解压完成后编译并执行安装 wget https://mirror

本地服务器搭建

终端输入sudo apachectl start 回车 ifconfig回车 找到本服务器 打开Finder-右键最左侧边的的任意一个文件名-点击上在-上层文件夹中显示-如果没看到资源库,再重复一次-看到资源库就-资源库-WebServer-Documents-里面就是我们服务器要装的文件,别人可以通过我们的主机地址直接来访问里面的文件

小型云服务器搭建GitLab遇到的坑

云服务商:腾讯云,搞活动买的 3年800块钱,和同时一人一台 配置:1C.1G.50G 用三年,挺划算的 项目中以前一直使用SVN作为代码版本控制,秉着程序员做到老学到老的精神,想尝试一下先进的GIT,所以想搭一套自己的GIT环境. 动手干,首先我用自己的虚拟机跑CentOS 7 试着安装了一下GitLab,一次成功. 开始: 接着就把我自己的腾讯云服务器给重装了,什么WordPress Mysql全部不要了,做了一个自定义镜像给存储起来,万一哪天又想用了呢 是吧! 过程: 好家伙,搞了我1个下

服务器搭建mutt邮件发送环境

mutt是一个开源邮件工具,小巧方便,可以实现简单邮件功能,在服务器 警报中特别常用,下面简单介绍一下使用情况. 日志通过shell脚本实现,邮件系统使用mutt,发送邮件工具使用msmtp. 1.安装msmtp,配置 wget http://nchc.dl.sourceforge.net/sourceforge/msmtp/msmtp-1.4.17.tar.bz2tar xvf msmtp-1.4.17.tar.bz2cd msmtp-1.4.17./configure --prefix=/u

阿里云ESC学生服务器搭建springboot项目生产环境(Mysql+JDK)不需要上传安装包

嗯,之前服务器被挖矿的病毒弄的登录不进去了,所以联系了阿里云客服,提交工单,最后建议重置,所以我就重置了,之后只能在装一次了 嗯,学习经验,docker如果懂的不是太多,不要随便云部署,都给别人挖矿了.   Mysql安装:中间有选择输入 y 即可: 下载mysql源安装包: wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm 安装MySQL源: yum localinstall mysql57-com