Git介绍

Git(读音为/gɪt/。)是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库,所以,工作的时候就不需要联网了,因为版本库都是在自己的电脑 上。现在每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。

主要有如下特点:

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 目录中保存着的特定版本文件,就属于已提交状态。如果作了修改并已放入暂存区域,就属于已暂存状态。如果自上次取出后,作了修改但还没有放到暂存区域,就是已修改状态。

部署

1>下载安装

yum   install git -y

2>git 常用选项

git add: 添加文件至暂存区域

git branch: 查看分支和创建分支

git checkout: 进行撤销也可以进行分支切换

git clone: 克隆远程主机仓库

git commit: 把暂存区域的文件提交至仓库中

git init: 初始化目录(工作目录)

git merge: 合并分支

git pull: 拉取远程主机的仓库

git push: 把本地仓库推送到远程主机

git reset: 撤销操作

git status: 查看git目录中文件状态

3>git  基本操作

&1> 创建目录

&2> 初始化目录为工作目录

git init

初始化完成后会生成一个隐藏文件 .git

&3>创建文件并提交到暂存区域

touch   test   

git  add  test   或   git   add  .  ( . 代表当前目录所有的文件 )

&4>提交

1#验证一下

2# 提交

&5>查看 已提交的版本

&6>写入内容至test文件并提交

1#

 echo  ‘’ >> test

2# 提交至暂存区

git  add  test

3# > 提交并查看

会发现两个不同的版本

&7>回滚到v1 版本

4>撤销 回滚

&1撤销工作区的文件

1#查看当前文件状态

2#编辑文件并查看文本状态

3# 撤销工作区并查看状态

git  checkout  --  test      

git status

&2撤销暂存区的文件

#1查看状态

#2编辑文件并查看状态

#3提交至暂存区并查看状态

#4回撤到工作区并查看状态

#5撤销工作区的文件并查看状态

&3 回滚到任意版本

#1 提交多个版本并查看所有版本

#2   从  v3 版本   回滚  到  v1版本   并查看

#3 回滚到 v2 版本  并查看

注:

1.log

   log命令可以显示所有提交过的版本信息

2.reflog

  如果在回退以后又想再次回到之前的版本,git reflog 可以查看所有分支的所有操作记录(包括commit和reset的操作),包括已经被删除的commit记录,git log则不能察看已经删除了的commit记录

5>分支 (查看、创建、切换)

&1 查看分支

注 : 至少有一个版本被提交,才会有分支概念

例如:

#1

#2

&2 创建分支

&切换分支

6>分支使用

1& 切换分支至lia

2&编辑test 文件并进行提交

3&切换至主分支

4&查看文本test

5&分支合并

git  merge  分支名

6&查看

CI 知识 :Git介绍及常用操作的更多相关文章

  1. Git介绍及常用操作演示(一)--技术流ken

    Git介绍 Git(读音为/gɪt/.)是一个开源的分布式版本控制系统,可以有效.高速的处理从很小到非常大的项目版本管理. Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发 ...

  2. git介绍和常用指令

    Git介绍和常用指令 介绍:Git和SVN一样都是版本控制工具.不同的是Git是分布式的,SVN是集中式的.Git开始用可能感觉难点,等你用习惯了你就会觉得svn是有点恐怖.(如果一个项目有好多人一起 ...

  3. git介绍以及常用命令操作

    一.git与SVN的对比[面试] ①git是分布式的,SVN是集中式的(最核心) ②git是每个历史版本都存储完整的文件,便于恢复,SVN是存储差异文件,历史版本不可恢复(核心) ③git可离线完成大 ...

  4. git工作中常用操作总结

    这篇文章主要记录下工作中常用的git操作.主要是对之前文章记录的问题做个总结,这个其实在idea中操作更加简单 别名配置 在敲git 命令时,其实可以使用别名,比如 commit可以配置为ci 下面是 ...

  5. git学习 本地常用操作01

    注意: Microsoft的Word格式是二进制格式,因此,版本控制系统是没法跟踪Word文件的改动 不要使用Windows自带的记事本编辑任何文本文件 开始git项目: 初始化本地项目: 初始化:g ...

  6. Git安装与常用操作

    Git作为一个版本控制工具,使用前需进行下载安装:可自行到官网下载. 一.安装(windows) 1.双击下载好的文件进行安装,弹窗中点击"next" 2.默认勾选,继续点击&qu ...

  7. git介绍和常用命令总结

    git中经常用的命令就是以下六个: 以下是命令总结: 另外,自己碰到的问题及解决方法: 在分支内提交远程仓库,-am: revert后进入vim,一直按住esc ,再连续按大写的z两次就退出来了: g ...

  8. 简单的git入门介绍及常用操作

    集中式版本控制系统采用中央服务器上存储的所有文件和实现团队协作.但是CVCS主要缺点是中央服务器的单点故障,即故障.不幸的是,如果中央服务器宕机一小时,然后在该时段没有人可以合作.即使在最坏的情况下, ...

  9. Git笔记:Git介绍和常用命令汇总

    Git 是一个开源的分布式版本控制系统,与 CVS, Subversion 等不同,它采用了分布式版本库的方式,不需要服务器端软件支持. 工作流程 Git 的工作流程大致如下: 克隆 Git 资源作为 ...

随机推荐

  1. 【java】查重类的实现

    import java.util.Vector; public class ElementCheck { // 重复优先 static Vector<Integer> CheckSameE ...

  2. Java基础(十三)--深拷贝和浅拷贝

    在上篇文章:Java基础(十二)--clone()方法,我们简单介绍了clone()的使用 clone()对于基本数据类型的拷贝是完全没问题的,但是如果是引用数据类型呢? @Data @NoArgsC ...

  3. java.lang.NoClassDefFoundError: org.springframework.beans.FatalBeanException

    在进行Spring和Hibernate整合的时候遇到了这个问题, 问题描述如下 问题原因?  Spring的Bean的XML配置文件存在错误 解决方法: 正确的配置XML文件,例如下面的代码 < ...

  4. 第2节 mapreduce深入学习:15、reduce端的join算法的实现

    reduce端的join算法: 例子: 商品表数据 product: pidp0001,小米5,1000,2000p0002,锤子T1,1000,3000 订单表数据 order:       pid ...

  5. formatDate() 格式化日期

    function datefmt(milSec, format) { var oldTime = Number(milSec); //得到毫秒数 // 日期格式转换 var t = new Date( ...

  6. Yahoo前端优化的35条军规

    摘要:无论是在工作中,还是在面试中,web前端性能的优化都是很重要的,那么我们进行优化需要从哪些方面入手呢?可以遵循雅虎的前端优化34条军规,不过现在已经是35条了,所以可以说是雅虎前端优化的35条军 ...

  7. python 通过句柄获取窗口内容

    -- enoding:utf-8 -- 生成 buffer 对象 import win32con from win32gui import PyMakeBuffer, SendMessage, PyG ...

  8. pyton学习之路

    文件操作 打开文件的模式有: r,只读模式(默认). w,只写模式.[不可读:不存在则创建:存在则删除内容:] a,追加模式.[可读:   不存在则创建:存在则只追加内容:] "+" ...

  9. CPLD和FPGA中不同电压的JTAG电路设计注意事项

    在初次的cpld电路设计的时候,遇到了这样的一个问题,整个系统是3.3V的系统,选用的cpld是XC9536-10VQ44C,芯片供电电压5V.他的io可以配置成3.3V和5V两种形式,因此,选用的时 ...

  10. 【转】Comet:基于 HTTP 长连接的“服务器推”技术

    原文链接:http://www.ibm.com/developerworks/cn/web/wa-lo-comet/ 很多应用譬如监控.即时通信.即时报价系统都需要将后台发生的变化实时传送到客户端而无 ...