zoukankan      html  css  js  c++  java
  • git版本控制的使用

    持续集成概述

    • 持续集成概述:持续集成(continuous integration)持续集成是指开发者在代码的开发过程中,可以频繁的代码部署集成到主干,并进行自动化测试。

    • 持续交付:持续交付指的是在持续集成的环境基础之上,将代码部署到预生产环境。

    • 持续部署:在持续交付的基础上,把部署到生产环境的过程自动化。

    版本控制系统概述

    什么是版本控制系统

    版本控制系统(Version Control System):

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

    版本控制系统不仅可以应用于软件源代码的文本文件,而且可以对任何类型的文件进行版本控制。

    版本控制解决了那些问题:

    快速回滚到指定的版本,只保留变化的内容

    版本控制系统SVN于Git的区别

    1. git是分布式的,SVN是集中式的

      开发人员可以建立自己的分支,并在自己的分支上进行操作,减少了冲突

    2. git可以在没有网络的情况下使用

      从远程库clone一个到本地库,没有网络的情况下,可以将修改提交到本地库,等有网的时候在传上去。

    3. git和SVN的版本控制

      是通过.git和.svn文件,.git只是在本地的版本库的目录下存在,而.svn存在于每一个文件夹,当我们不需要版本控制的时候,要删除.svn很费时。

    4. 版本号问题

      svn有明确的版本号,git对于每一个版本,都通过SHA1算法生成一个唯一标示的码,方便追溯到之前的版本。

    git使用

    git简介

    官网地址:https://git-scm.com/

    菜鸟教程:https://www.runoob.com/git/git-workflow.html

    Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

    Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

    git基本概念

    我们先来理解Git工作区、暂存区和版本库概念

    • 工作区:就是你在电脑里能看到的目录。

    • 暂存区:英文叫stage, 或index。一般存放在 ".git目录下" 下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。

    • 版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。

    安装和配置Git

    #git安装
    yum install git -y
    git --version
    
    #配置个人的用户名称和电子邮件地址:
    git config --global user.name ""
    git config --global user.email "1354586675@qq.com"
    git config --global color.ui   "true"

    如果用了 --global 选项,那么更改的配置文件就是位于你用户主目录下的那个,以后你所有的项目都会默认使用这里配置的用户信息。

    如果要在某个特定的项目中使用其他名字或者电邮,只要去掉 --global 选项重新配置即可,新的设定保存在当前项目的 .git/config 文件里。

    查看配置信息

    git config --list
    user.name=吉祥
    user.email=1354586675@qq.com
    color.ui=true
    
    #或
    cat /root/.gitconfig
    [user]
        name = 吉祥
        email = 1354586675@qq.com
    [color]
        ui = true

    创建版本库

    #使用当前目录作为Git仓库,该命令执行完后会在当前目录生成一个 .git 目录。,
    mkdir /opt/class
    cd /opt/class
    git init
    
    #或者指定目录作为git仓库
    git init  /opt/class/
    Initialized empty Git repository in /opt/class/.git/

    git仓库添加文件

    #添加文件到缓存区
    git add .
    git commit -m 'add three file'
    • 实验
    #创建5个文件并写写入各自的文件数字
    for n in 1 2 3 4 5;do echo $n >$n.txt ;done
    
    #查看文件状态,未提交缓存区
    git status
    
    #提交完查看文件状态
    git add .
    git status
    
    #提交到git仓库
    git comiit -m 'add three file'

    git修改文件名称并提交

    #目录和缓存区之间的变化
    git mv 5.txt 6.txt
    git status
    git commit -m 'change file name'
    git status

    git的文件对比

    #缓存区与git仓库之间的变化
    vim 6.txt
    5
    6
    
    git diff 6.txt  #本地目录和缓冲区文件对比
    git diff --cached 6.txt  #缓冲区文件和仓库文件对比
    git add .
    
    git diff --cached 6.txt
    git diff 6.txt
    git commit -m 'add ontline 6.txt'
    git status

    实现回退功能

    #查看当前的历史版本
    git log --oneline   
    git reset --hard 942bdf3
    
    #查看所有的历史版本
    git reflog --oneline
    git reset --hard 942bdf3

    撤销修改的文件

    #提交到缓冲的区文件撤回
    git reset HEAD file3(文件名)
    git checkout -- file3(文件名)
    
    #未add到缓冲区的文件撤回
    git checkout -- file3(文件名)

    git管理分支

    #增加一个新分支
    git branch dev01
    #切换分支
    git checkout  dev01
    
    #在开发分支上合并主分支
    git merge master  -m '注释'
    
    #切回主分支
    git checkout  master
    #在主分支合并开发
    git merge dev01  -m '注释'

    git标签管理

    #给当前版本打标签
    git tag v1.2 
    
    #删除标签
    git  tag  -d  v1.2
    
    #给任意版本打标签
    git tag  -a v1.0  -m  '优化了1111  修复bug'  a119962 

    git远程仓库gitee

    码云地址:https://gitee.com/ 一个免费的静态网页托管服务

    • 创建私有仓库
    • 创建完成:

    https协议方式上传

    git init
    git add .
    git commit -m "first commit"
    git remote add origin https://gitee.com/weijixiang_god/class.git
    git push -u origin master   #上传到master分支
    Username for 'https://gitee.com': weijixiang_god  #代码仓库名称
    Password for 'https://weijixiang_god@gitee.com':  #登录密码
    • 上传结果:

    ssh协议方式上传

    • 主机创建公钥,复制到码云
    ssh-keygen  #一路回车
    cat /root/.ssh/id_rsa.pub
    #秘钥内容忽略,添加到码云

    • 免密钥推送
    #创建一个新文件并上传到git仓库
    echo "7" > 7.txt && git add . && git commit -m "create 7.txt" 
    
    git remote remove origin    #删除之前上传方式问https的用户信息
    git remote add origin git@gitee.com:weijixiang_god/class.git   #添加git方式仓库信息
    git push -u origin master

    上传标签

    git tag 1.0  #给当前仓库打标签
    git push origin master --tags  #推送标签
  • 相关阅读:
    转】Apache解决高并发和高可用
    Kafka学习(一)配置及简单命令使用
    unity3d教程动态创建简单平面地形
    LeetCode: Unique Binary Search Trees [095]
    德惠也有星巴克
    一个css和js结合的下拉菜单,支持主流浏览器
    【图像处理】人类视觉成像原理
    windows使用nginx+memcached实现负载均衡和session或者缓存共享
    OpenCV基础篇之画图及RNG随机数对象
    在阿里云上布置git server
  • 原文地址:https://www.cnblogs.com/Mercury-linux/p/12623343.html
Copyright © 2011-2022 走看看