zoukankan      html  css  js  c++  java
  • Git 版本管理基本操作

     

    Git是一个版本管理操作的工具 非常N,可以很智能的分布式管理,

    本网站学习笔记 来自于廖雪峰老师的内容借鉴

    安装

    yum -y install git

     

    本地设置全局

    告知是谁提交代码 信息

    # git config --global user.name "xxx"
    # git config --global user.email "xxx"
    颜色设置
    # git config --global color.ui true
    查看设置信息
    # git config --list

     因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。你也许会担心,如果有人故意冒充别人怎么办?这个不必担心,首先我们相信大家都是善良无知的群众,其次,真的有冒充的也是有办法可查的。

    注意git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。

    初始化仓库

       什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。

    [root@localhost ~]# mkdir learngit
    [root@localhost ~]# cd learngit/
    [root@localhost learngit]# pwd
    /root/learngit
    [root@localhost learngit]# git init
    Initialized empty Git repository in /root/learngit/.git/
    [root@localhost learngit]# ls -a
    .  ..  .git

      瞬间Git就把仓库建好了,而且告诉你是一个空的仓库(empty Git repository),细心的读者可以发现当前目录下多了一个.git的目录,这个目录是Git来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了 

    提交代码流程

    先创建文件
    # cat readme.txt 
    Git is a version control system
    Git is free software

    一定要放到learngit目录下(子目录也行),因为这是一个Git仓库,放到其他地方Git再厉害也找不到这个文件。和把大象放到冰箱需要3步相比,把一个文件放到Git仓库只需要两步。

    第一步,用命令git add告诉Git,把文件添加到仓库:
     git add readme.txt

    第二步,用命令git commit告诉Git,把文件提交到仓库: # git commit -m "wrote a readme file"
    [master (root-commit) d1b9afa] wrote a readme file
     1 files changed, 2 insertions(+), 0 deletions(-)
     create mode 100644 readme.txt
    查看状态 #git status

     

    回退版本

    # git reset --hard HEAD^^表示上个版本 ^^表示上两个版本
    
    回退指定版本
    # git reflog
    8b1cc8f HEAD@{0}: HEAD^: updating HEAD
    10c245e HEAD@{1}: commit: add 2hehe
    8b1cc8f HEAD@{2}: commit: the 2th commit
    9ec14f1 HEAD@{3}: commit (initial): the first commit
    # git reset --hard 9ec14f1
    HEAD is now at 9ec14f1 the first commit

     

    git checkout  --  readme.txt    #从新拉取数据

     

    远程仓库

    在github上面创建一个仓库 然后加入本地的公钥上传到github上面的setting里面的SSH-KEY

    本地创建秘钥
    # ssh-keygen -t rsa
    公钥上传到setting 设置SSH Key
    #cd /root/oldboy #git remote add origin git@github.com:yefei520
    /demo.git #git pull #git pull origin master #git push -u origin master

     

    git Tag标签

    创建标签

    #git tag -a v1.2 -m "information"
    
    #上面的命令我们创建了本地一个版本V1.2,并且添加了附注信息 ‘information’
    
    #查看标签
    #git tag
    v1.2
    
    #获取标签显示附注信息
    #git show v1.2

     

    但是目前这个标签仅仅是提交到了本地git仓库,如何同步到远程代码库

    tag远程推送

    #git push origin --tags
    
    这样我们就把本地版本推送到了远程代码仓库

     

    如果刚刚同步上去,你缺发现一个致命bug ,需要重新打版本,现在还为时不晚.

     

    删除标签:

    #git tag -d v1.2

    到这一步我们只是删除了本地 V1.2的版本,可是线上V1.2的版本还是存在,如何办?

    这时我们可以推送的空的同名版本到线下,达到删除线上版本的目标:

    #git push origin :refs/tags/v1.2

    这时本地和远程的 V1.2 版本已经被我们移除掉.

     

    如何获取远程版本:

    #git fetch origin tag v1.2

    这样我们可以精准拉取指定的某一个版本.适用于运维同学部署指定版本.

     

     

     

     

     

    Github 是国外的 比较慢 而且是公开的  如果要加密 需要钱  但是有开源的Gitlab 开源的软件 可以替代Github 我们开下一章 如何安装Gitlab

     

  • 相关阅读:
    IO 单个文件的多线程拷贝
    day30 进程 同步 异步 阻塞 非阻塞 并发 并行 创建进程 守护进程 僵尸进程与孤儿进程 互斥锁
    day31 进程间通讯,线程
    d29天 上传电影练习 UDP使用 ScketServer模块
    d28 scoket套接字 struct模块
    d27网络编程
    d24 反射,元类
    d23 多态,oop中常用的内置函数 类中常用内置函数
    d22 封装 property装饰器 接口 抽象类 鸭子类型
    d21天 继承
  • 原文地址:https://www.cnblogs.com/yexiaochong/p/5991291.html
Copyright © 2011-2022 走看看