介绍

  1、Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
  2、Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库,所以,工作的时候就可以不需要联网了,因为版本库都是在自己的电脑上。

git的应用:
现在每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。

主要特点:
1. 版本控制
2. 分布式
3. 工作过程是将服务器上的代码下载到本地,本地开发完成后,在提交到服务器端

Git和SVN的对比:
  1.git是分布式的,svn是集中式的。(最核心)
  2.git是每个历史版本都存储完整的文件,便于恢复,svn是存储差异文件,历史版本不可恢复。(核心)
  3.git可离线完成大部分操作,svn则不能。
  4.git有着更优雅的分支和合并实现。
  5.git有着更强的撤销修改和修改历史版本的能力
  6.git速度更快,效率更高。
基于以上区别,git有了很明显的优势,特别在于它具有的本地仓库。

git的三种状态
  已提交(committed)、已修改(modified)和已暂存(staged)。
  已提交表示数据已经安全的保存在本地数据库中。
  已修改表示修改了文件,但还没保存到数据库中。
  已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。

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

获取 Git 仓库:
有两种取得 Git 项目仓库的方法。 第一种是在现有项目或目录下导入所有文件到 Git 中; 第二种是从一个服务器克隆一个现有的 Git 仓库。

Git的安装

第一种安装方式:yum进行安装

[root@ken ~]# yum install git -y

第二种安装方式:编译安装

第一步:上传安装包并解压

[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@ken html]# git
add Add file contents to the index 把工作目录文件提交到暂存区域
bisect Find by binary search the change that introduced a bug
branch List, create, or delete branches 查看分支,创建分支
checkout Checkout a branch or paths to the working tree 切换分支,回滚
clone Clone a repository into a new directory 克隆仓库
commit Record changes to the repository 把暂存区域文件提交到仓库
diff Show changes between commits, commit and working tree, etc
fetch Download objects and refs from another repository
grep Print lines matching a pattern
init Create an empty Git repository or reinitialize an existing one 初始化工作目录 .git
log Show commit logs 查看提交信息
merge Join two or more development histories together 合并分支
mv Move or rename a file, a directory, or a symlink
pull Fetch from and merge with another repository or a local branch 拉取远程仓库内容
push Update remote refs along with associated objects 把本地仓库内容推送远程仓库
rebase Forward-port local commits to the updated upstream head
reset Reset current HEAD to the specified state 回滚
rm Remove files from the working tree and from the index
show Show various types of objects
status Show the working tree status 文件状态
tag Create, list, delete or verify a tag object signed with GPG
reflog 查看历史提交信息

git的简单使用:

第一步:创建一个目录,并进入

[root@docker2 ~]# mkdir /git_test
[root@docker2 ~]# cd /git_test/
[root@docker2 git_test]# ls

第二步:初始化目录

[root@docker2 git_test]# git init
初始化空的 Git 版本库于 /git_test/.git/ 

第三步:创建一个测试文件

[root@docker2 git_test]# echo 11111 > 1.txt

第四步:注册

[root@docker2 git_test]# git config --global user.email "qq-email@qq.com"
[root@docker2 git_test]# git config --global user.name "name"

第五步:提交

[root@docker2 git_test]# git add 1.txt
[root@docker2 git_test]# git commit -m "v1"
[master(根提交) 72b6d22] v1
1 file changed, 1 insertion(+)
create mode 100644 1.txt

第六步:查看

[root@docker2 git_test]# git log
commit 72b6d22dfbba2b0f01c74bf0ea105875b8b2edf8
Author: wuxun <56565656@qq.com>
Date: Mon Nov 11 19:44:12 2019 +0800 v1

第七步:往测试文件里面追加数据

[root@docker2 git_test]# echo 222 >> 1.txt 

第八步:提交

[root@docker2 git_test]# git add .
[root@docker2 git_test]# git commit -m "v2"
[master 14820ed] v2
1 file changed, 1 insertion(+)

第九步:再次查看

commit 14820ed1cce6df5e5a5d5129f8fd0c5f54bf5b8a
Author: wuxun <56565656@qq.com>
Date: Mon Nov 11 19:48:16 2019 +0800 v2 commit 72b6d22dfbba2b0f01c74bf0ea105875b8b2edf8
Author: wuxun <56565656@qq.com>
Date: Mon Nov 11 19:44:12 2019 +0800 v1

第十步:恢复到第v1版本

[root@docker2 git_test]# git reset --hard 72b6d22dfbba2b0f01c74bf0ea105875b8b2edf8
HEAD 现在位于 72b6d22 v1
[root@docker2 git_test]# git log
commit 72b6d22dfbba2b0f01c74bf0ea105875b8b2edf8
Author: wuxun <56565656@qq.com>
Date: Mon Nov 11 19:44:12 2019 +0800 v1

第十一步:恢复到v2版

[root@docker2 git_test]# git reflog #首先使用git reflog可以查看commit值
72b6d22 HEAD@{0}: reset: moving to 72b6d22dfbba2b0f01c74bf0ea105875b8b2edf8
14820ed HEAD@{1}: commit: v2
72b6d22 HEAD@{2}: commit (initial): v1
[root@docker2 git_test]# git reset --hard 14820ed #恢复的时候指定conmit值
HEAD 现在位于 14820ed v2
[root@docker2 git_test]# git log #查看发现已经恢复到v2版本
commit 14820ed1cce6df5e5a5d5129f8fd0c5f54bf5b8a
Author: wuxun <56565656@qq.com>
Date: Mon Nov 11 19:48:16 2019 +0800 v2 commit 72b6d22dfbba2b0f01c74bf0ea105875b8b2edf8
Author: wuxun <56565656@qq.com>
Date: Mon Nov 11 19:44:12 2019 +0800 v1

git的安装及使用的更多相关文章

  1. Ubuntu下git的安装与使用

    Ubuntu下git的安装与使用 Ubuntu下git的安装与使用与Windows下的大致相同,只不过个人感觉在Ubuntu下使用git更方便. 首先,确认你的系统是否已安装git,可以通过git指令 ...

  2. 4.Git的安装

    最早Git是在Linux上开发的,很长一段时间内,Git也只能在Linux和Unix系统上跑.不过,慢慢地有人把它移植到了Windows上.现在,Git可以在Linux.Unix.Mac和Window ...

  3. git&sourcetree安装及在IntelliIJ下拉取项目基础使用

    be careful: 1)git版本与Sourcetree版本最好一致 ,不能git为2.5,sourcetree为1.8 2)先安装git再安装Sourcetree 3)拥有git和sourcet ...

  4. git的安装以及遇到的问题

    git安装以及遇到的问题 之前没有学会如何在Ubuntu下使用git,国庆放假回来后,完成了git的安装,补回来了之前没有学会的东西. 以下是我安装的过程以及遇到问题.解决问题的过程. 这次安装git ...

  5. 20145321 Git的安装使用及今后学习规划

    20145321 Git的安装使用及今后学习规划 Git安装使用及解决遇到的问题 之前上传代码都没有按照老师的方法弄,当时看到git教程感觉很麻烦,于是都是写完之后再一个个 程序贴上去,而现在使用过后 ...

  6. Git版本控制工具(一)----git的安装及创建版本库

    ​[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...

  7. Mac上git的安装配置与使用简述

    Mac下git搭建及使用 之前就只是经常在GitHubs上下载代码,也没注意怎么上传项目.一开始对git都没什么了解花了几个小时去小补了下知识.如果有需要可以转去这里学习:[GIT使用简易指南] (h ...

  8. Windows下Git的安装及配置

    Git的BASH Git的为Windows提供了用于命令行运行的一个仿真BASH的Git.习惯LINUX和UNIX环境的你,可以在该BASH环境中输入“git”命令来完成各种版本控制的操作. 简介 G ...

  9. window下版本控制工具Git 客户端安装

    安装使用 1.下载msysgit http://code.google.com/p/msysgit/ 2.下载tortoisegit客户端安装 http://code.google.com/p/tor ...

  10. 【转载】Git的安装与使用

    Git的安装与使用  转载来源:http://www.cnblogs.com/Bonker/p/3441781.html 1,下载git https://code.google.com/p/msysg ...

随机推荐

  1. Vue.js 源码分析(三十) 高级应用 函数式组件 详解

    函数式组件比较特殊,也非常的灵活,它可以根据传入该组件的内容动态的渲染成任意想要的节点,在一些比较复杂的高级组件里用到,比如Vue-router里的<router-view>组件就是一个函 ...

  2. IL 语法分析

    Managed Heap: GC auto manage. One process, One heap. Call Stack: Runtime auto manage, every time whe ...

  3. 初探云原生应用管理之:聊聊 Tekton 项目

    [编者的话]“人间四月芳菲尽,山寺桃花始盛开.” 越来越多专门给 Kubernetes 做应用发布的工具开始缤纷呈现,帮助大家管理和发布不断增多的 Kubernetes 应用.在做技术选型的时候,我们 ...

  4. 进程间通信的信道与控制(io机制)

    进程间通信 = 信道 + 控制(状态) + io 信道: 1.流式信道: 2.队列信道: 3.共享内存信道: 控制机制: 数据就绪状态的通知与数据获取机制. 1.信号: 2.循环: 3.io机制

  5. F#周报2019年第24期

    新闻 ML.NET 1.1发布与模型构建器升级 .NET Core 3.0预览版6发布 尝试新的System.Text.Json API F#调用Infer.NET 匿名记录类型文档 了解FableC ...

  6. 基于Spark的电影推荐系统(推荐系统~7)

    基于Spark的电影推荐系统(推荐系统~7) 22/100 发布文章 liuge36 第四部分-推荐系统-实时推荐 本模块基于第4节得到的模型,开始为用户做实时推荐,推荐用户最有可能喜爱的5部电影. ...

  7. Linux安装centos,网络net8模式ping不通www.baidu.com或者ping不通主机

    1.Linux安装centos,网络net8模式ping不通www.baidu.com或者ping不通主机. 我使用的是net8模式.配置如下所示,保证可以ping通www.baidu.com或者pi ...

  8. Out,ref,params修饰符,可选参数,命名参数

    out输出,在调用函数中声明,在被调用函数中赋值: ref在调用函数中赋值,后调用: params修饰符,static double CalculateAverage(params[] values) ...

  9. Winform中设置ZedGraph当前所有曲线的颜色

    场景 Winforn中设置ZedGraph曲线图的属性.坐标轴属性.刻度属性: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10 ...

  10. ASP.NET MVC过滤器学习笔记

    1.过滤器的两个特征 1.他是一种特性,可以引用到控制器类和Action方法上.比如下图 这里控制器类和action方法都引用了过滤器,这个过滤器是用来做授权的 2.特征继承自FilterAttrib ...