一、Git简介

  git是什么?

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

  // 摘自百度百科

  更多历史诞生故事,可以参见廖雪峰老师的教程:Git诞生

  git和svn有何区别

    从概念上可以看到,git是分布式版本控制,而svn是集中式的。

    更多关于两者的不同,请参见伯乐在线http://blog.jobbole.com/31444/

二、Git安装

  WIN安装

    在 Windows 平台上安装 Git 同样轻松,有个叫做 msysGit 的项目提供了安装包,安装包百度云盘下载:点击下载

    图文安装教程,请参考http://blog.csdn.net/chengyuqiang/article/details/54178683

    安装完成后,进行如下简单配置让git可以确认你的身份即可开始教程了(其它配置后续引入)

    

  git图形化git-gui参考https://www.runoob.com/w3cnote/git-gui-window.html

  其它平台

    其它平台(mac,linux)请参见:http://www.runoob.com/git/git-install-setup.html

三、Git入门使用

  1.创建版本库—— git init

    在当前目录创建:

git init

    在指定目录创建:

git init newrepo

  初始化后,会在对应的目录下会出现一个名为 .git 的目录(隐藏目录),所有 Git 需要的数据和资源都存放在这个目录中。

  示例(目录有误,应该使用linux的目录系统):

  

  2.添加文件到版本库—— git add,git commit

    在刚刚的git仓库下(这里是git_repository)创建一个示例文件:readme.txt(内容自定义)

    

     把文件加入版本库总共两步:  

$ git add file1.txt
$ git commit -m "your message"

   -m参数后表示的即为提交的注释(请务必添加!

   看示例:

    

  其中第一次报错很明显提示当前不在仓库里面(因为不是在当前目录创建的仓库),切换到仓库后即可正常使用了!

四、时光机穿梭

  1.查看状态——随时查看仓库状态,掌握版本库状况

  将之前的readme.txt修改为如下内容(请注意ctrl+S进行保存):

  

  使用git status查看当前状态

git status

  示例:

  

  可以看到当前,readme.txt已经被修改,但是未提交!

  当然,以上只是知道被修改了,但不知道修改的细节,想知道修改的细节,可以通过git diff来查看

git diff file

  

  提交修改同样是上文的两步——add commit:

  

  提交后再次查看可以看到状态是clean

  2.版本回滚

  查看历史版本记录

  和SVN一样,可以进行版本回滚。当然,回滚之前我们需要看一下有哪些版本,使用git log查看:

git log

 需要注意的是,git的版本号是一个非常大的数字(由于它是分布式的),所以它显示的是十六进制的版本号,以保证分布式环境不会冲突

   示例:

  

  当然,有时候版本过多,可以加上一些参数进行格式调整,包括 git log -3(进行条数限制),git log --pretty=oneline

git log -
git log --pretty=oneline

  示例:

  

  版本回滚

  版本回滚使用的是git reset命令

git reset <option>

  比较常用的有:回到最新的一次提交(上一个版本)

git reset --hard HEAD^

  示例:

  

  回到指定版本:

git reset --hard 版本号

  当然了,版本号是非常长的一大串数字,我们可以只输入前面几位(只要保证不会冲突即可),git会自动寻找的:

  示例:

  

  当然回到历史版本后查看日志是无法看到当前版本之后的信息的,例如有3个版本,假定为1 2 3,你在3版本回滚到了2版本,此时使用git log查看时,不能看到3这个版本了,也就是说除非我们记住了版本号或者正好时间来得及,还没关闭窗口,上翻查看到3的信息,否则这时似乎就无法恢复了。

  但是,git提供了后悔药,你可以使用git reflog来查看每一次的命令:

git reflog

  示例:

  

  这样,又可以愉快的玩耍了!

  3.工作区和暂存区的概念

  之前我们所说的两步操作:git add git commint到底经历了什么呢?

  add将工作区的内容加到暂存区,commit将暂存区的内容提交到当前分支。

  【注意】Git管理的是修改,当把文件加到暂存区后再次修改是不会被管理的,也就是说git add之后的修改不会被提交,如果想提交,可以再执行一次git add,然后再统一提交即可!

  更多关于这两个区的概念不在此处展开,可以参见:工作区和暂存区

  4.撤销更改

  假设将readme.txt进行了更改

  

  在未提交之前想要撤销,可以使用:

git checkout -- readme.txt

  查看示例(注意命令的正确书写,查看错误的原因):

  

  

  更多更加完整的通俗的撤销更改的操作,请参见:撤销更改

  5.删除文件

  删除文件就不再赘述了,直接看命令:

git rm test.txt

  Git附录

  常用命令速查表:

 英文版下载查看(可以打印)

链接:http://pan.baidu.com/s/1hsMnb4S 密码:akvw

  易百教程:http://www.yiibai.com/git/git_checkout.html

  官网:https://book.git-scm.com/docs

  官网中文版:https://git-scm.com/book/zh/v2

版本控制工具(上)——Git的基本使用的更多相关文章

  1. 分布式版本控制工具:git与Mercurial(zz)

    分布式版本控制工具:git与Mercurial [收藏此页] [打印]   作者:cyfdecyf  2007-12-26 内容导航: 第1页   [IT168 技术文档]    说到版本控制工具,很 ...

  2. 【版本控制工具】 Git基础

    一.Git简介 Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目.于是Git 成了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件. (Git目前使用率非常 ...

  3. 【版本控制工具】 Git进阶1

    一.Git常用命令 Git中的很多命令与Linux相同(比如修改,查询,编辑,移动等),这里可以参考我之前的一篇文章https://www.cnblogs.com/ywb-articles/p/105 ...

  4. 版本控制工具之git的常用命名01

    基本命令 从git远程仓库导出项目:git clone http://127.0.0.1/name_master/server.git 从git远程仓库拉取代码:git pull 查看本地仓库状态:g ...

  5. 版本控制工具之git

    git存储区域详解 命令快速总结 初始化 git init 当前文件夹初始化 代码提交 git add file/. 自动检测工作区修改的内容提交到暂存区 git status 查看当前文件夹工作区的 ...

  6. 版本控制工具——Git常用操作(上)

    本文由云+社区发表 作者:工程师小熊 摘要:用了很久的Git和svn,由于总是眼高手低,没能静下心来写这些程序员日常开发最常用的知识点.现在准备开一个专题,专门来总结一下版本控制工具,让我们从git开 ...

  7. 版本控制工具比较-CVS,SVN,GIT

    首先介绍几个版本控制软件相互比较的重要依据: a.版本库模型(Repository model):描述了多个源码版本库副本间的关系,有客户端/服务器和分布式两种模式.在客户端/服务器模式下,每一用户通 ...

  8. [.net 面向对象程序设计进阶] (23) 团队开发利器(二)优秀的版本控制工具SVN(上)

    [.net 面向对象程序设计进阶] (23) 团队开发利器(二)优秀的版本控制工具SVN(上) 本篇导读: 上篇介绍了常用的代码管理工具VSS,看了一下评论,很多同学深恶痛绝,有的甚至因为公司使用VS ...

  9. Git版本控制工具学习

    Git代码管理工具学习 分布式管理工具:git 相比较svn它更加的方便,基本上我们的操作都是在本地进行的. Git文件的三种状态:已提交,已修改,以暂存. 已提交:表示文件已经被保存到本地数据库. ...

  10. Git版本控制工具(三)----远程仓库GitHub的使用

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

随机推荐

  1. 沉淀再出发:OpenStack初探

    沉淀再出发:OpenStack初探 一.前言 OpenStack是IaaS的一种平台,通过各种虚拟化来提供服务.我们主要看一下OpenStack的基本概念和相应的使用方式. 二.OpenStack的框 ...

  2. Asp.Net MVC Identity 2.2.1 使用技巧(七)

    创建角色管理相关视图 1.添加视图 打开RolesAdminController.cs   将鼠标移动到public ActionResult Index()上  右键>添加视图   系统会弹出 ...

  3. Azure 负载内部均衡器概述

    Azure 内部负载均衡器 (ILB) 仅将流量定向到云服务内的资源,或使用 VPN 来访问 Azure 基础结构. 在这一点上,ILB 与面向 Internet 的负载均衡器不同. Azure 基础 ...

  4. iOS模拟器命令xcrun simctl系列(自动化测试)

    1. 列出安装的可用的模拟器: xcrun instruments -s [如:iPhone 5s (9.0) [00AB3BB6-C5DC-45C7-804F-6B88F57C2AFF] (Simu ...

  5. 015.1 Lock接口

    内容:Lock接口使用步骤,同步生产大白兔奶糖的例子 同步代码块的锁是隐式的,显式容易让我们理解.所以我们使用这个显式的方法,方便理解代码.######实现同步步骤:1.获取锁:lock()2.同步代 ...

  6. 洛谷 P4705 玩游戏

    题目分析 题目要求的是: \[ \sum_{i=1}^n\sum_{j=1}^m(a_i+b_j)^x(x\in [1,T]) \] 利用二项式定理化式子, \[ \begin{aligned} &a ...

  7. 关于使用Filter降低Lucene tf idf打分计算的调研

    将query改成filter,lucene中有个QueryWrapperFilter性能比较差,所以基本上都须要自己写filter.包含TermFilter,ExactPhraseFilter,Con ...

  8. VC++ TCP网络控制台程序

    在Windows7系统下,采用工具为VS2008,Win32控制台应用程序,编写一个基于TCP的Client/Server网络程序. 1.服务器端代码 #include <WinSock2.h& ...

  9. mysql5.6编译安装

    1.安装编译源码所需的工具和库 yum install gcc gcc-c++ ncurses-devel perl -y yum -y install wget gcc-c++ ncurses nc ...

  10. centos 腾讯云 今天买了 18个月

    1.安装开发编译工具包 yum groupinstall "Development Tools" 2.查看Linux 下用户 对系统资源的占用情况,root表示用户 top -u ...