一、简介

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. 快速Android开发系列网络篇之Volley

    Volley是Google推出的一个网络请求库,已经被放到了Android源码中,地址在这里,先看使用方法 RequestQueue mRequestQueue = Volley.newRequest ...

  2. xamarin android,UWP 网络类型和IP地址

    App开发经常要判断网络连通情况,并判断网络类型,获取网络IP.xamarin中可以使用Dependencies提供各平台下的方法,现把各平台代码记录如下: using System; using S ...

  3. Atitit 会话层和表示层的异同

    Atitit 会话层和表示层的异同 会话层 这一层也称为会晤层或对话层.在会话层及以上的更高层次中,数据传送的单位没有另外再取名字,一般都可称为报文. 会话层虽然不参与具体的数据传输,但它却对数据传输 ...

  4. Fiddler--一、HTTP协议简介

    在学习Fiddler之前,最好先学习一下HTTP协议. HTTP协议简介 什么是HTTP协议 超文本传输协议(HTTP)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端 ...

  5. My First Android Application Project 第一个安卓应用

    一.前言: 安卓(Android):是一种基于Linux的自由及开放源代码的操作系统,主要用在移动设备上,如手机.平板电脑.其他的设备也有使用安卓操作系统,比如:电视机,游戏机.数码相机等等. 二.具 ...

  6. Hibernate中的锁机制

    锁机制:是数据库为了保证数据的一致性<一个事务的各种操作不相互影响>而使各种共享资源在被并发访问访问变得有序所设计的一种规则,用来保证在当前用户进行操作数据的时候其他的用户不能对同一数据进 ...

  7. python基础操作以及hdfs操作

    目录 前言 基础操作 hdfs操作 总结 一.前言        作为一个全栈工程师,必须要熟练掌握各种语言...HelloWorld.最近就被"逼着"走向了python开发之路, ...

  8. AFNetworking 3.0 源码解读(五)之 AFURLSessionManager

    本篇是AFNetworking 3.0 源码解读的第五篇了. AFNetworking 3.0 源码解读(一)之 AFNetworkReachabilityManager AFNetworking 3 ...

  9. Objective-C runtime的常见应用

    用Objective-C等面向对象语言编程时,"对象"(object)就是"基本构造单元"(building block).开发者可以通过对象来存储并传递数据. ...

  10. 让我们山寨一张Windows Azure Global的壁纸

    用过国际版Azure的同学都见过一个显示了机器中主要信息的壁纸,而这个壁纸是通过Sysinternals的一款叫做bginfo来实现的,这款软件的好处是对于批量管理主(虚拟)机的管理员和使用方都很实用 ...