• GITlab安装、使用及新项目推送到gitlab


                                          

                                                  

                                                                                                                   

                                                     

                                                         

     ====================================================================================================

                                                                                            GITlab环境部署

                                       

    角色 IP 内存
    gitlab01 192.168.200.112 4G
    git-client 192.168.200.113 1G

    关闭防火墙和selinux

    [root@localhost ~]# hostname gitlab01
    [root@localhost ~]# bash

    [root@gitlab01 ~]# systemctl stop firewalld
    [root@gitlab01 ~]# iptables -F
    [root@gitlab01 ~]# setenforce 0

    安装依赖包并设置开机自启

    [root@gitlab01 ~]# yum install curl openssh-server openssh-client postfix cronie policycoreutils-python -y

    [root@gitlab01 ~]# systemctl start postfix
    [root@gitlab01 ~]# systemctl enable postfix

    上传并解压gitlab源码包
    [root@gitlab01 ~]# ls
    gitlab-ce-11.11.3-ce.0.el7.x86_64.rpm

    [root@gitlab01 ~]# rpm -ivh gitlab-ce-11.11.3-ce.0.el7.x86_64.rpm

    _______ __ __ __

    / ____(_) /_/ / ____ _/ /_
    / / __/ / __/ / / __ `/ __
    / /_/ / / /_/ /___/ /_/ / /_/ /
    \____/_/\__/_____/\__,_/_.___/

    Thank you for installing GitLab!
    GitLab was unable to detect a valid hostname for your instance.
    Please configure a URL for your GitLab instance by setting `external_url`
    configuration in /etc/gitlab/gitlab.rb file.

    修改配置文件/etc/gitlab/gitlab.rb 生产环境可以跟据需求修改

    [root@gitlab01 ~]# vim /etc/gitlab/gitlab.rb

    修改13行:   external_url 'http://192.168.200.112'

    重新加载配置文件

    [root@gitlab01 ~]# gitlab-ctl reconfigure

    [root@gitlab01 ~]# gitlab-ctl restart

    [root@gitlab01 ~]# netstat -lnpt | grep 80
    tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 13077/nginx: master
    tcp 0 0 0.0.0.0:8060 0.0.0.0:* LISTEN 13077/nginx: master

    测试:浏览器输入192.168.200.112进入网站

             

     

                    

    • Private 私有项目,只有自己或者项目组内的人才能访问
    • Internal 所有登录的用户都能访问
    • Public 公开的,任何人都能访问

                            

                                                                            

     113客户端操作:

    [root@svn ~]# hostname git-client
    [root@svn ~]# bash
    [root@git-client ~]# systemctl stop firewalld
    [root@git-client ~]# iptables -F
    [root@git-client ~]# setenforce 0

    [root@git-client ~]# rz

    [root@git-client ~]# ls
    git-2.22.0.tar.gz 

    [root@git-client ~]#yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel autoconf gcc gcc-c++ make -y

    [root@git-client ~]# tar xf git-2.22.0.tar.gz -C /usr/src

    [root@git-client ~]# cd /usr/src/git-2.22.0/
    [root@git-client git-2.22.0]# make configure

    [root@git-client git-2.22.0]# ./configure --prefix=/usr/local/git && make && make install

    [root@git-client git-2.22.0]# ln -sf /usr/local/git/bin/git /usr/bin

    [root@git-client git-2.22.0]# git --version
    git version 2.22.0
    [root@git-client git-2.22.0]# git config --global user.name "crushlinux"
    [root@git-client git-2.22.0]# git config --global user.email "crushlinux@163.com"
    [root@git-client git-2.22.0]# git config --global color.ui true
    [root@git-client git-2.22.0]# git config --list

    user.name=crushlinux
    user.email=crushlinux@163.com
    color.ui=true

    将112中gitlab的代码进行克隆到113gitlab上:

    [root@gitclient ~]# git clone http://192.168.200.111/root/svn-git.git
    正克隆到 'svn-git'...
    remote: Enumerating objects: 3, done.
    remote: Counting objects: 100% (3/3), done.
    remote: Total 3 (delta 0), reused 0 (delta 0)
    展开对象中: 100% (3/3), 完成.

    [root@gitclient ~]# ls
     svn-git 
    git-2.22.0.tar.gz
    [root@gitclient git_data]# cd
    [root@gitclient ~]# cd svn-git/
    [root@gitclient svn-git]# ls
    README.md
    [root@gitclient svn-git]# cat README.md
    svn git file [root@gitclient svn-git]#

    ===================================================================================================

    新项目推送到gitlab实践

    gitlab前面已经搭建好了,如果我们想用把代码上传到gitlab仓库上的话,先要新建一个项目仓库。然后本地安装git环境,就可以提交了。

    新建一个新项目仓库

     

     新建一个本地文件夹,cd进去,然后 init建仓

    [root@jenkins ~]# cd git_data/
    [root@jenkins git_data]# git init
    已初始化空的 Git 仓库于 /root/git_data/.git/
    [root@jenkins git_data]# pwd
    /root/git_data

    新建项目文件名
    [root@jenkins git_data]# vim one.py

    #这是一个pyhton开发的文件代码
    #:wq保存退出
    print('hello world!')

    [root@jenkins git_data]# ls
    one.py

    提交代码到本地仓库git add * (*是提交当前文件夹下全部的,也可以指定提交一个文件如:one.py)
    [root@jenkins git_data]# git add one.py

    查看仓库状态 git status
    [root@jenkins git_data]# git status
    位于分支 master

    尚无提交

    要提交的变更:
    (使用 "git rm --cached <文件>..." 以取消暂存)

    新文件: one.py

    代码提交到缓存区 git commit -m "描述"

    [root@jenkins git_data]# git commit -m '这是python代码' one.py
    [master(根提交) 0a28aca] 这是python代码
    1 file changed, 4 insertions(+)
    create mode 100644 one.py

    提交到远程仓库
    [root@jenkins git_data]# git remote add origin http://192.168.200.111/root/python.git

    最后一步push推送过去,push的时候,会让你输入账号和密码,这里的用户名和密码就是gitlab上注册的用户了
    [root@jenkins git_data]# git push -u origin master
    Username for 'http://192.168.200.111': root
    Password for 'http://root@192.168.200.111':
    remote: HTTP Basic: Access denied
    fatal: 'http://192.168.200.111/root/python.git/' 鉴权失败
    [root@jenkins git_data]# git push -u origin master
    Username for 'http://192.168.200.111': root
    Password for 'http://root@192.168.200.111':
    枚举对象: 3, 完成.
    对象计数中: 100% (3/3), 完成.
    压缩对象中: 100% (2/2), 完成.
    写入对象中: 100% (3/3), 304 bytes | 304.00 KiB/s, 完成.
    总共 3 (差异 0),复用 0 (差异 0)
    To http://192.168.200.111/root/python.git
    * [new branch] master -> master
    分支 'master' 设置为跟踪来自 'origin' 的远程分支 'master'。

    gitlab查看推送结果

     

  • 相关阅读:
    深入理解JVM 运行时数据区域
    深入理解JVM 垃圾收集
    深入理解JVM 垃圾收集算法
    深入理解JVM HotSpot 虚拟机对象
    公司格式
    出现 Uncaught (in promise) NavigationDuplicated: Avoided redundant navigation 问题
    vuex 中关于 mapActions 的作用
    vuerouter 路由传递参数的三种写法
    Android WebView禁用系统键盘
    直播CDN介绍
  • 原文地址:https://www.cnblogs.com/CMX_Shmily/p/11962178.html
Copyright © 2020-2023  润新知