zoukankan      html  css  js  c++  java
  • git的介绍及常用操作

    Git介绍
     
    主要有如下特点:
    1. 版本控制
    2. 分布式
    3. 工作过程是将服务器上的代码下载到本地,本地开发完成后,在提交到服务器端
    git相比于svn功能更加的强大,命令也很多。本篇博客将详细介绍一些常用命令的使用操作。
     
    Git和SVN的对比
     
    1.git是分布式的,svn是集中式的。(最核心)
    2.git是每个历史版本都存储完整的文件,便于恢复,svn是存储差异文件,历史版本不可恢复。(核心)
    3.git可离线完成大部分操作,svn则不能。
    4.git有着更优雅的分支和合并实现。
    5.git有着更强的撤销修改和修改历史版本的能力
    6.git速度更快,效率更高。
    基于以上区别,git有了很明显的优势,特别在于它具有的本地仓库。

    Git几个概念
     
    一. 工作目录
    工作目录是对项目的某个版本独立提取出来的内容。这些从 Git 仓库的压缩数据库中提取出来的文件,放在磁盘上供你使用或修改。
    二. 暂存区域
    是一个文件,保存了下次将提交的文件列表信息,一般在 Git 仓库目录中。有时候也被称作`‘索引’’,不过一般说法还是叫暂存区域。
    三. Git 仓库目录
    是Git 用来保存项目的元数据和对象数据库的地方。这是 Git 中最重要的部分,从其它计算机克隆仓库时,拷贝的就是这里的数据。
     
    Git工作流程
     
    基本的 Git 工作流程如下:
    在工作目录中修改文件 > 暂存文件,将文件的快照放入暂存区域 > 提交更新,找到暂存区域的文件,将快照永久性存储到 Git 仓库目录。
     
    如果 Git 目录中保存着的特定版本文件,就属于已提交状态。如果作了修改并已放入暂存区域,就属于已暂存状态。如果自上次取出后,作了修改但还没有放到暂存区域,就是已修改状态。

    git常用选项
    add 把工作目录内容添加到暂存区域
    branch 查看和设置分支
    checkout 切换分支和撤销
    clone 克隆远程仓库
    commit 把暂存区域提交到仓库
    init 初始化工作目录
    log 查看提交的日志信息
    merge 合并分支
    pull 拉取远程创库
    push 把本地内容推送到远程仓库
    reste 撤销操作(回滚版本和暂存区域)
    status 查看文件所处的状态
    refloh 查看所有版本
    第二种安装方式:编译安装
    第一步:上传安装包并解压
    [root@ken ~]# rz
    [root@ken ~]# ls | grep git
    git-v2.7.4.zip
    [root@ken ~]# unzip git-v2.7.4.zip
     
    第二步:安装依赖
    [root@ken git-2.7.4]# yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker -y
     
    第三步:进入解压下目录下并执行编译
     
    [root@ken git-2.7.4]# make prefix=/usr/local/git all
    [root@ken git-2.7.4]# make prefix=/usr/local/git install
     
    第四步:导入二进制程序
    [root@ken git-2.7.4]# rm -rf /usr/bin/git
    [root@ken git-2.7.4]# ln -s /usr/local/git/bin/git /usr/bin/git
    [root@ken git-2.7.4]# git --version
    git version 2.7.4

     


    第一步:下载git
    [root@zxw6 zxw]# yum install git -y

    第二步:创建一个根目录并初始化工工作目录
    [root@zxw6 ~]# mkdir /zxw
    [root@zxw6 ~]# cd /zxw
    [root@zxw6 zxw]# ll
    total 0
    [root@zxw6 zxw]# git init 初始化目录
    Initialized empty Git repository in /zxw/.git/
    [root@zxw6 zxw]# ls -a
    . .. .git

    第三步:创建文件并把暂存区域提交到仓库
    [root@zxw6 zxw]# echo "zhaoxiaowei" > test
    [root@zxw6 zxw]# ls
    test
    [root@zxw6 zxw]# cat test
    zhaoxiaowei
    [root@zxw6 zxw]# git add . 把工作目录下的文件都提交到暂存区域
    [root@zxw6 zxw]# git commit -m "v1" 把暂存区域提交到仓库

    *** Please tell me who you are.

    Run

    git config --global user.email "you@example.com" 进行认证
    git config --global user.name "Your Name"

    to set your account's default identity.
    Omit --global to set the identity only in this repository.

    fatal: unable to auto-detect email address (got 'root@zxw6.(none)')
    [root@zxw6 zxw]# git config --global user.email "you@example.com"
    [root@zxw6 zxw]# git config --global user.name "Your Name"
    [root@zxw6 zxw]# git commit -m "v1"
    [master (root-commit) c866a1d] v1
    1 file changed, 1 insertion(+)
    create mode 100644 test

    第四步:查看提交到仓库的版本信息
    [root@zxw6 zxw]# git log
    commit c866a1da7133f5c7fc04ccc6bc862f7e4dee478f
    Author: Your Name <you@example.com>
    Date: Mon Jul 15 07:18:45 2019 -0400

    v1

    第五步:再次提交并查看
    [root@zxw6 zxw]# echo "zhao" >> test
    [root@zxw6 zxw]# git add .
    [root@zxw6 zxw]# git commit -m "v2"
    [master a81565c] v2
    1 file changed, 1 insertion(+)
    [root@zxw6 zxw]# echo "xiao" >> test
    [root@zxw6 zxw]# git add .
    [root@zxw6 zxw]# git commit -m "v3"
    [master f38ef58] v3
    1 file changed, 1 insertion(+)
    [root@zxw6 zxw]# git log
    commit f38ef582124460bebb4e9113c9abfa4a3195e69c
    Author: Your Name <you@example.com>
    Date: Mon Jul 15 07:28:29 2019 -0400

    v3

    commit a81565c30c5a39f0bf3a309cb52bbd75942e5bdc
    Author: Your Name <you@example.com>
    Date: Mon Jul 15 07:27:55 2019 -0400

    v2

    commit c866a1da7133f5c7fc04ccc6bc862f7e4dee478f
    Author: Your Name <you@example.com>
    Date: Mon Jul 15 07:18:45 2019 -0400

    v1

    第六步:回滚版本v1

    [root@zxw6 zxw]# git reset --hard c866a1da7133 撤销到v1版本
    HEAD is now at c866a1d v1
    [root@zxw6 zxw]# git log
    commit c866a1da7133f5c7fc04ccc6bc862f7e4dee478f
    Author: Your Name <you@example.com>
    Date: Mon Jul 15 07:18:45 2019 -0400

    v1

     

  • 相关阅读:
    redis命令参考(四) set集合
    redis命令参考(三) List列表相关
    redis命令参考(二)
    redis命令参考(一) SortedSet相关
    insert_into_on_dumplicate_key
    laravel深入分析
    开发中GBK+UTF8编码的处理
    ajax封装调用
    linux正则表达式的用法
    linux 如何保证使程序后台运行(nohup &)
  • 原文地址:https://www.cnblogs.com/itzhao/p/11301095.html
Copyright © 2011-2022 走看看