一、简介

Git是目前世界上最先进的分布式版本控制系统,Git中绝大部分操作都是访问本地资源,不需要网络,其中有三个概念比较重要:1. 工作目录 2. 暂存区域 3.本地仓库。

简单说明一下,工作目录:项目某个版本的内容,供我们使用;暂存区域:一个文件,保存了下次将提交的文件列表信息;本地仓库:保存项目元数据的地方,git最重要的部分,从其它计算机克隆仓库时,拷贝的就是这里的数据。

基本的工作流程为:1. 修改文件    2. 将修改后的文件保存到暂存区域    3. 提交更新到本地仓库中

二、安装

1. 在Windows上安装Git,下载 msysGit   Git-2.8.1-64-bit.exe 下载完成后,一路默认安装即可,没啥可注意的我觉得。。

还有一个小乌龟 TortoiseGit 可以安装,是一个git的GUI管理工具,百度一下安装即可,这里我使用Git Bash来操作,不用图形界面了。

2. 配置Git的工作环境,配置个人的用户名和邮箱,Git提交时会引用这两条信息,说明提交者身份,windows下配置文件在C盘用户主目录下,Linux下/etc /gitconfig  or ~/.gitconfig

$ git config --global user.name "cyhe"
$ git config --global user.email "cyhe@example.com"
$ git config --list

三、仓库的创建

首先创建版本库,有两种方法,一是在当前目录下直接初始化一个新的Git仓库,二是从已有的Git仓库中克隆一个新的镜像仓库,操作如下:

1. 打开Git Bash,在F:/git-project 目录下创建一个netty版本库,使用 【git init】 命令

2. 从现有仓库克隆,从github仓库克隆

首先,注册github帐号,创建一个空的仓库;

接着,在本地生成 ssh 公钥和私钥,直接在Bash中执行 ssh-keygen  -t rsa –C "cyhe@example.com" 然后在用户目录下会生成一个 .ssh 目录,其中id_rsa为私钥,id_rsa.pub为公钥;

最后,将公钥内容添加到github中,步骤:settings --> SSH and GPG keys --> New SSH key

在这里我新建Github仓库时选中了 Initialize this repository with a README 所以仓库中包含一个文件,如果不选中而新建的话会有如下提示

可以根据提示,把本地通过【git init】初始化的仓库push 到github仓库中。这里就不演示了,接下来从刚才新建的 netty demo克隆到本地

从图中可以看到,远程仓库一成功克隆到本地,接下来进行简单的操作。

四、简单操作

关于操作围绕以下几个实用性问题来描述,怎么把文件推到仓库?怎么查看推送日志?怎么撤销操作?怎么进行版本恢复?

相关命令:

(1)【git add filename】 把文件添加到暂存区

(2)【git commit -m "提交注释"】把文件提交到仓库

(3)【git status】查看文件状态,主要列出修改过的文件

(4)【git diff】查看已暂存和未暂存的更新

(5)【git log (git log --pretty=oneline)】查看修改的历史记录

新建一个test文本文件,内容为 first line,将其推到本地仓库中

这里只是推送到了本地仓库,并没有同步到远程仓库,可以使用【git -u origin master】命令同步

查看之前操作历史记录,前面是版本号,后面是提交是的注释信息

(6)【git checkout -- <file>】抛弃对文件的修改

版本恢复,也可称撤销操作。在我们使用【git status】时,就有撤销相关的命令提示,如下,我修改test.txt新增一行,保存到暂存区后查看文件的状态

【git checkout -- test.txt】

(7)【git reset --hard 版本号】回退到指定的版本号

当重复添加到暂存区,但不想commit到仓库时可以使用【git reset HEAD <file>】移除暂存区

使用【git reflog】查看版本直接恢复即可

【git reset HEAD README.md】从暂存区移除 README.md

【git reset --hard 3b340b6】回退到初始提交的版本

【git reset --hard HEAD~100】版本太多可以使用此命令回退到指定版本,如前第100个版本

(8)【rm test.txt】删除文件

直接使用 rm <file> 命令删除,然后使用git rm <file> 最后提交更新到仓库,这样就从仓库中删除了

资料:

Git版本控制软件结合GitHub从入门到精通常用命令学习手册:http://www.ihref.com/read-16369.html

git-入门的更多相关文章

  1. git入门网站

    http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 git入门教程:对商业的.开源的. ...

  2. git入门及上传项目到github

    Git入门:       如果你完全没有接触过Git,你现在只需要理解通过Git的语法(敲入一些命令)就可以将代码上传到远程的仓库或者下载到本地的仓库(服务器),我们此时应该有两个仓库,就是两个放代码 ...

  3. Git入门仅这篇就够了

    版权声明:本文为博主原创文章,未经博主允许不得转载. 转载请表明出处:http://www.cnblogs.com/cavalier-/p/5978937.html 前言 大家好,我是Cavalier ...

  4. git入门学习(二):新建分支/上传代码/删除分支

    一.git新建分支,上传代码到新的不同分支  我要实现的效果,即是多个内容的平行分支:这样做的主要目的是方便统一管理属于同一个内容的不同的项目,互不干扰.如图所示: 前提是我的github上已经有we ...

  5. git入门学习(一):github for windows上传本地项目到github

    Git是目前最先进的分布式版本控制系统,作为一个程序员,我们需要掌握其用法.Github发布了Github for Windows 则大大降低了学习成本和使用难度,他甚至比SVN都简单. 一.首先在g ...

  6. Git入门简介

    ​1. Git 背景 Git 最初由Linus Torvalds编写,用于 Linux 内核开发的版本控制工具. Git 与常用的版本控制工具 CVS.Subversion 等不同,它采用了分布式版本 ...

  7. [置顶] 【Git入门之十五】Github操作指南

    原创作品,转载请标明:http://blog.csdn.net/jackystudio/article/details/12374633 最终篇,介绍一下Github网站的使用,主要是翻译为主,简化了 ...

  8. Git入门—创建项目

    Git入门—创建项目 注:win10系统下 打开Git Bash,进入存放仓库的目录 创建 初始化git init,该命令执行完后会在当前目录生成一个 .git 目录. 所有 Git 需要的数据和资源 ...

  9. git 入门教程

    git 入门教程之协同开发 前面我们已经介绍过远程仓库的相关概念,不过那时并没有深入探讨,只是讲解了如何创建远程仓库以及推送最新工作成果到远程仓库,实际上远程仓库对于团队协同开发很重要,不仅仅是团队协 ...

  10. 廖雪峰Git入门教程

    廖雪峰Git入门教程  2018-05-24 23:05:11     0     0     0 https://www.liaoxuefeng.com/wiki/00137395163059296 ...

随机推荐

  1. ASP.NET Web API WebHost宿主环境中管道、路由

    ASP.NET Web API WebHost宿主环境中管道.路由 前言 上篇中说到ASP.NET Web API框架在SelfHost环境中管道.路由的一个形态,本篇就来说明一下在WebHost环境 ...

  2. UniversalImageLoader的一个小问题

    最近在使用UniversalImageLoader时遇到了一个小问题,多个地方同时通过ImageLoader.getInstance().loadImage(url, new ImageSize(dp ...

  3. 修改linux的hosts 后提示“无效的参数”

    碰到个问题,修改linux的主机名问题. vim /etc/hosts 192.168.154.129 129192.168.154.132 132192.168.154.133 133 本地ip是1 ...

  4. ASP.NET Core 1.1 Preview 1 简介(包含.NETCore 1.1升级公告)

    ASP.NET Core 1.1 Preview 1于2016年10月25日发布.这个版本包括许多伟大的新功能以及许多错误修复和一般的增强. 要将现有项目更新到ASP.NET Core 1.1 Pre ...

  5. 锋利的jQuery--jQuery与DOM对象的互相转换,DOM的三种操作(读书笔记一)

    1.jQuery对象就是通过jQuery包装DOM对象后产生的对象.   2.jQuery对象和DOM对象的相互转换.   良好的书写风格: var $input=$("input" ...

  6. JavaScript权威设计--JavaScript变量,作用域,声明提前(简要学习笔记四)

    1.宿主对象与宿主环境 宿主对象:由ECMAScript实现的宿主环境提供的对象,可以理解为:浏览器提供的对象.所有的BOM和DOM都是宿主对象.   宿主环境:一般宿主环境由外壳程序创建与维护,只要 ...

  7. 初探AngularJS

    一.前言 早已听说AngularJS的大名,并在很久前也编写过些小demo,但是都没有系统学习过.由于,在下个版本项目中用到了AngularJS,so,那就一起再来研究研究呗. 说到,这个Angula ...

  8. Hawk 3. 网页采集器

    1.基本入门 1. 原理(建议阅读) 网页采集器的功能是获取网页中的数据(废话).通常来说,目标可能是列表(如购物车列表),或是一个页面中的固定字段(如JD某商品的价格和介绍,在页面中只有一个).因此 ...

  9. Java内存模型深度解析:总结--转

    原文地址:http://www.codeceo.com/article/java-memory-7.html 处理器内存模型 顺序一致性内存模型是一个理论参考模型,JMM和处理器内存模型在设计时通常会 ...

  10. Android 开发环境搭建以及工具(不断更新)

    学习android需要学习的编程知识 https://wiki.cyanogenmod.org/w/Doc:_Development_Resources 从http://source.android. ...