zoukankan      html  css  js  c++  java
  • Git 安装及用法 github 代码发布 gitlab私有仓库的搭建

    • 版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。

      这个版本控制软件,有 svn还有git,是一个工具.

    1. git是由linux的作者开发的
    2. git是一个分布式版本控制系统
    3. svn cvs是集中式的版本控制系统,区别于git,集中式的版本控制系统,必须联网才能用,并且写完了,还得放到一个统一管理的目录,还得通过网络传输
    4. 版本库指的就是一堆代码,被循规蹈矩的管理者,就是叫做版本库
    5. snv必须联网才能使用,而且如果中央服务器挂了,就是svn服务器挂了,整个代码仓库全挂了,谁也用不了

    linux平台安装git软件

    1. yum安装
      1. 编代码编译安装
        1. rpm包手动安装

    yum安装git

    1. 配置阿里云的yum源,因为它下载快,2下载软件包齐全
      wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
      wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

    2. 一条命令安装git软件

      yum install git -y

    3. 安装git完毕,查看版本
      [root@fd yum.repos.d]# git --version
      git version 1.8.3.1

    4. 设置git的版本控制用户信息

    • 一般公司用这个命令!!!!!

      针对当前linux登录的用户添加了一个配置,不会对他人造成影响

      git config --global user.name "alex dsb"

      用这个命令就会在 ~/.gitconfig文件

    • 用--system就是对操作系统所有的用户,都设置这个配置

      git config --system user.name "alex dsb"

      git config --global user.email "yc_uuu@163.com"

    1. 查看全局版本用户信息
      git config --global --list

    git的使用生命周期

    • 工作目录(你当前linux操作的目录) > 暂存区 > 本地仓库 > 远程github

      git的命令,就是将文件变化,在这四个区域,来回变动

    初始化git版本库的方式,有三个

    1. 对已经有的代码进行 版本管理
      我这台机器 已经有了一个django项目,对它进行管理

      1. 对当前已经有的django项目进行git初始化

        git init

      2. 查看git状态

        git status #查看git状态

        (gitlearn) [root@lht1 dj220]# git status
        # On branch master        #在master分支上
        #
        # Initial commit
        #
        # Untracked files:        #未标记的文件如下 
        #   (use "git add <file>..." to include in what will be committed)
        #
        # dj220/
        # manage.py
        
    2. git项目的第一次管理,初始化的流程

      1. git init 对django代码初始化

      2. git status 查看git版本库的状态

      3. 对django代码,进行跟踪,标记 ,然后提交本地工作区的代码,到暂存区
        git add .

      4. 提交暂存区的代码,到本地版本库
        git commit -m "写入你的提交备注信息"

        -m 是标记注释的意思

      5. 查看git提交日志
        git log

      6. git的各种命令,就是对四个区域来回切换,并且只能在git工作区下去敲
        必须得在含有.git文件夹的目录,去敲命令,才可以

      7. 在git版本库目录下,新创建的文件,都会被标记为 Untracked files,代表未跟踪的文件

      8. 对新创建的文件,进行跟踪
        git add .

      9. 修改django的url.py,写入新功能,也是对文件进行修改标记 modified
        对修改过的代码文件,也必须git add 添加到暂存区

        git add .

      10. 任何的对项目修改的操作,注意都要git status看一下

      11. 查看git提交日志

        git log

      12. git回退历史

        语法: git reset --hard commit的id记录 --hard参数是强制性回退

        git reset --hard 954e6df1c0a2a71dd141850727d3eddd580518b3

        再次回到另一个提交版本信息,
        git reset --hard 2444fd8ed876eab2a95a697d039916510b356104

      13. git穿梭未来
        git 回退,前进版本,其实就是是对git的文件指针,来回切换
        文件指针叫做head

        git reflog #查看所有回退历史记录的命令

      14. 撤回git修改的记录
        对已经跟踪的文件app01/views.py进行修改,此时标记为了modified: app01/views.py
        如果你想提交本次修改动作
        git add .
        如果你发现代码修改错了,git可以很方便的撤回
        git checkout -- 文件名
        git checkout -- app01/views.py

      15. 理解git命令
        git init 初始化一个git版本库,会生成一个.git 文件夹,此时这个目录就是git仓库了!!!

      16. 修改git工作区的文件,重命名,以及删除文件

        linux的命令如下
        rm 删除
        mv 移动目录,或者重命名
        但是,你对git仓库中的代码,请使用git的命令
        git rm 删除git管理的代码
        git mv 对git管理的代码,改名

      17. git临时区的概念
        使用场景:
        git add 作用是? 是把本地工作区的代码,提交到暂存区
        git commit 将暂存区的代码,提交到本地版本仓库中,提交完毕,这件事就结束了

        使用流程,场景,在你开发新功能的时候,突然线上代码有问题,你必须得改线上代码,
        将你目前已经开发好的功能,临时存储起来,
        待你修复bug完毕之后,再把这个临时存储的代码,回退回来即可

        1.git stash #讲你暂存区提交的代码,放到一个stash临时区中
        2.修复bug完毕
        3.拿回stash的代码
        git stash pop
        4.查看stash是否还有临时代码
        git stash list

        5.注意未标记的,已修改的文件,都得git add 添加到暂存区之后,才可以提交到本地仓库
        git add .

        6.如果你想提交这个代码
        git commit -m "提交注释信息"

      18. git分支功能,每个人都有自己的分支,不直接影响本体代码,在自己的分支上,写完代码后,通过管理员吧分支的代码,合并到主干上即可
        git branch #查看当前所在的分支
        git branch wupeiqi #创建吴佩琪分支
        git branch alex #创建艾利克斯分支

        git checkout wupeiqi #切换到吴佩琪分支

        分支开发使用流程
        1.创建新的分支
        git branch wupeiqi
        2.切换分支
        git checkout wupeiqi
        3.在分支下,写自己的代码
        ........
        4.切换到主干分支上
        git checkout master
        5.合并分支的代码,此时吴佩琪开发提交的代码,就被合并到master了
        git merge wupeiqi

        分支冲突怎么办?手动解决冲突的代码即可
        思路:master分支和wupeiqi分支,同时操作一个文件,对同一行代码进行写入

      1.用master主干分支,操作一个文件,并且提交commit
      git branch #当前是主干master
      模拟对一个文件的第二行写入代码
      2.master提交本次修改记录
      git add .
      git commit -m "提交注释"
      3.切换分支,也对同一个文件,进行写入代码,且提交
      git checkout wupeiqi
      模拟对同一个文件,写入同一行代码,肯定会和master冲突
      git add .
      git commit -m "分支提交的注释"

      4.回到master主分支,合并吴佩琪分支,然后手动解决
      git checkout master

       git merge wupeiqi 
       如果出现了冲突,就手动编辑这个文件,删除git自动添加的冲突注释

      5.保存文件退出
      git add .
      git commit -m "master最终合并的注释"
      6.git分支的命令
      git branch 分支名linux 创建分支linux
      git checkout 分支名linux 切换分支到linux
      git branch 查看当前分支情况,在哪一个就有*符
      git check -- filename 一键还原文件,将git仓库的文件覆盖当前文件,危险命令
      git checkout -b name 创建+切换新的分支

    2.当前机器没有项目,直接进行git初始化,这个是管理一个空的目录

    ​ mkdir 目录名

    ​ git init 初始化这个空目录

    3. 公司使用方式是他

    ​ 远程克隆下载一个项目,从github,或者gitlab ,一台新的机器,啥也没有,把公司的代码下载出来,进行开发,以及版本管理

    github的使用

    1. 注册一个github账号
      https://github.com

    2. 登录后,添加创建一个新的github仓库,用于传输本地代码

    3. 新建github仓库,填写github仓库的名字,描述信息,以及redame文件,以及忽略文件(忽略编程语言的一些缓存文件)

    4. 添加ssh秘钥,让github和linux机器进行免密登录

      1. linux推送代码到github有2个登录方式
        一个是账号密码方式
        一个是ssh秘钥方式

      2. 选择ssh秘钥,安全性更高
        ssh是一个远程安全登录的命令,可以通过ssh-keygen命令生成一对公私钥(其实就是2个秘钥文件),然后把公钥发给github,私钥自己本地保留
        输入如下命令 ssh-keygen

        [root@fd dj220]# 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:
        SHA256:ResKz3ErviC3OjbHe+Hqog2290YrqgCVlsMcpL+JUmg root@fd
        The key's randomart image is:
        +---[RSA 2048]----+
        | .o       .      |
        | + +     . .     |
        |. O       o      |
        | = .     o       |
        |oEo   . S o      |
        |oo o  .+.+ .     |
        |+ = .ooo=..      |
        |o. +Bo=+o.       |
        |..+=o@*+o.       |
        +----[SHA256]-----+
        [root@fd dj220]# 
        [root@fd dj220]# 
        [root@fd dj220]# cd ~/.ssh/
        [root@fd .ssh]# ls 

        公私钥内容如下 id_rsa是秘钥 id_rsa.pub 是公钥

        id_rsa id_rsa.pub

    5. 把公钥的内容,赋值粘贴发给github

      查看如下内容,

      [root@fd .ssh]# cat id_rsa.pub

      将如下公钥信息,复制

      ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDKfEGqHrIf8n6NrawBFt0/slRobTVuI9HoLxBWx0SdhIj+ATKgsEoVryG1S3WXulStNgDqF4dBSTRbNPFO/rrMdyURYRnSceQBKdNe+SmW2ttb/bfxd4JOnsC2ARCBK+DCTB48gtoSx+x4AUx3HGMUkOlgCjhHxk55CaMY8BtrBvdBAuOtUrv2RVOiheTTI+Sr8OJL/7lHEkZWGkW1n+xnx4/Urph4oa6lg8gQgFMWlLA9z5+cN8ZrQUi0MLX4p2e8sYfMnkzra5sSsUKQulqRsATaD8RK4FD+VEDWYwGfbdncCIMgiqol6gEQXKc4OJ/mU/xQMx5RQFwQGXW4hFFX root@fd
    6. 此时你的linux 机器和github已经建立ssh通道了

    7. 获取你的github项目仓库地址
      比如你的项目地址如下:
      git@github.com:ayuchao/s16gitlearning.git

    8. 在linux机器上配置远程仓库别名
      #git remote add 都是关键字 然后给你的github项目地址添加一个别名叫做origin
      git remote add origin git@github.com:zhangziyi185x/WebChatRoom.git

    9. 保证你的本地代码,和远程github仓库内容一致,如果不一致,会失败,先pull下载代码,保证一致性
      git pull origin master #向远程的github origin别名下的master分支下载代码

    10. 此时可以吧你本地的代码,推送到github仓库了

      git push 是推送的意思 origin是远程仓库地址的别名 master 推到远程仓库的master分支上

      得到git管理的版本仓库下敲

      ​ git push origin master

    11. 去github去查看代码

    新机器配置

    1. 配置ssh秘钥,方式在笔记上面
    2. 在一个目录,克隆一个新项目代码
        git clone git@github.com:ayuchao/s16gitlearning.git
    

    3.在github仓库下,在浏览器中,新建一个分支,名字是development

    4.下载最新的github代码
    git pull origin
    5.此时项目,默认只有一个master分支,所以需要新建一个分支去开发,便于维护master的代码
    #在本地新建一个dev分支,并且和远程的github的dev分支建立关系
    git pull origin
    git branch zhangfei origin/zhangfei

    6.在项目中使用development分支去开发
    ...开发代码省略...
    7.提交本地开发
    git add .
    git commit -m "分支提交了新的代码"

    8.提交分支本地的代码,到github中
    git push origin development

    9.合并分支代码,推送到master主干线中
    git checkout master
    git merge development #合并分支的代码
    git push origin master #推送本地master的代码到github中

    git常用命令

    
    

    git init 初始化
    git status 查看git版本库的状态
    git add 指定文件或者 .
    git commit -m "提交的注释" 提交暂存区的内容到本地仓库
    git checkout 文件名 #撤回对文件的修改
    git checkout 分支名 #切换不同的分支
    git log #查看git提交的日志记录
    git reflog #查看所有提交以及回退的记录
    git reset --hard commitID #回退到某一个提交的id版本下
    git config --global user.name "你的名字"
    git config --global user.umail "你的邮件"
    git branch #查看分支
    git branch 分支名 #创建一个新的分支
    git branch -d 分支 #删除这个分支
    git checkout -b 分支名 #创建并且切换到一个新的分支下
    git stash #将暂存区的记录,临时放到一个区域 ,先git add之后,再git stash
    git stash pop #删除最后一个stash记录,放回暂存区
    git rm #删除git版本库中的文件
    git mv #改名
    git remote add 别名 github仓库的地址
    用法如下
    git remote add origin git@github.com:ayuchao/s16gitlearning.git

    git push 别名 分支名
    用法
    git push origin master #推送本地git仓库到github仓库了

    git pull origin master #下载github远程仓库到本地来

    gitlab 配置

    • nginx git yum python mysql redis 都是linux上的软件

      gitlab私有仓库的搭建, github共有仓库不安全,虽然现在也有私有仓库的功能了
      携程,美团运维开发组都是搭建的gitlab企业私有代码仓库

    1. 环境配置,至少4G内存的虚拟机

    2. 通过yum安装gitlab,阿里云的源也没有gitlab这个软件包
      解决方案:

      1. 选择gitlab官网提供的yum仓库地址

      2. 还是去找一个第三方,拥有gitlab软件包的yum仓库

      3. 配置清华大学的yum源
        找到yum仓库目录
        /etc/yum.repos.d
        然后手动创建一个 以.repo结尾的文件
        touch gitlab.repo

      4. 写入如下信息

        cat gitlab.repo 
        [gitlab-ce]
        name=Gitlab CE Repository
        baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
        gpgcheck=0
        enabled=1
        ~
      5. 安装gitlab
        yum install gitlab-ce

      6. 如何启动?
        确保服务器内存足够,可以用如下三个命令,清空buff内存缓存
        [root@DD-Server-9F ~]# echo 1 > /proc/sys/vm/drop_caches
        [root@DD-Server-9F ~]# echo 2 > /proc/sys/vm/drop_caches
        [root@DD-Server-9F ~]# echo 3 > /proc/sys/vm/drop_caches

        gitlab-ctl reconfigure 初始化gitlab,只能执行一次
        gitlab-ctl status/stop/start    启动gitlab
        gitlab-ctl status  #确保你的gitlab启动了

        访问方式:
        直接访问你linux服务器的ip即可,注意关闭linux防火墙(咱们学习阶段的配置)

        iptables -F #清空规则 
        systemctl stop firewalld 
        systemctl disable firewalld 
        #临时关闭selinux,也是一个防火墙
        setenforce 0
        #永久关闭selinux,修改/etc/selinux/config 
        修改如下参数

        通过浏览器访问页面服务器ip,默认开启了nginx的web端口,设置初始密码,操作类似github
        第一次访问会设置新密码 至少8个字符

        默认登录用户root
        密码11111111
        即可看到gitlab

      2.启动了gitlab之后,修改了账号密码

      3.配置ssh公钥,发送给gitlab

      4.下载私有的gitlab仓库
      git clone git@192.168.3.3:root/webchathoom.git

      5.进入gitlab下载的代码中,此时就可以pull push代码了

    原文地址:https://www.cnblogs.com/zhang-zi-yi/p/10749014.html
  • 相关阅读:
    bzoj 1017 魔兽地图DotR
    poj 1322 chocolate
    bzoj 1045 糖果传递
    poj 3067 japan
    timus 1109 Conference(二分图匹配)
    URAL 1205 By the Underground or by Foot?(SPFA)
    URAL 1242 Werewolf(DFS)
    timus 1033 Labyrinth(BFS)
    URAL 1208 Legendary Teams Contest(DFS)
    URAL 1930 Ivan's Car(BFS)
  • 原文地址:https://www.cnblogs.com/jpfss/p/10925842.html
Copyright © 2011-2022 走看看