一、简介

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. [DeviceOne开发]-do_LinearLayout组件使用技巧

    一.摘要 今天跟大家主要来介绍一下DeviceOne中的do_linearlayout这个布局,在DeviceOne开发中,do_linearlayout这个布局是相当重要. 现在给大家来总结一下. ...

  2. What is Away3D

    做了几个基于Flash平台的3D的项目,一路走来收获颇多.Away3D作为一个开源的Flash3D引擎,在3D页游领域,无疑是当前OGRE在国内的地位. 翻译出了多年前做Away3D中国社区的时候翻译 ...

  3. CSharpGL(21)用鼠标拾取、拖拽VBO图元内的点、线或本身

    CSharpGL(21)用鼠标拾取.拖拽VBO图元内的点.线或本身 效果图 以最常见的三角形网格(用GL_TRIANGLES方式进行渲染)为例. 在拾取模式为GeometryType.Point时,你 ...

  4. 【MSP是什么】MSP认证之成功的项目群管理

    同项目管理相比,项目群管理是为了实现项目群的战略目标与利益,而对一组项目进行的统一协调管理. 项目群管理 项目群管理是以项目管理为核心.单个项目上进行日常性的项目管理,项目群管理是对多个项目进行的总体 ...

  5. WCF学习之旅—WCF服务的WAS寄宿(十二)

    上接    WCF学习之旅—WCF服务部署到IIS7.5(九) WCF学习之旅—WCF服务部署到应用程序(十) WCF学习之旅—WCF服务的Windows 服务程序寄宿(十一) 八.WAS宿主 IIS ...

  6. JavaScript高级编程 (2) - HTML 与 JavaScript

    向HTML 页面中插入JavaScript 的主要方法,就是使用<script>元素.这个元素由Netscape 创造并在Netscape Navigator 2 中首先实现.后来,这个元 ...

  7. PHP_环境配置_python脚本_2017

    Apache配置 需要安装:VC2015 httpd-2.4.16-win32-VC14.zip VC14就是2015的环境. 又比如:php-5.6.12-Win32-VC11-x86 VC11就是 ...

  8. HTML5 学习总结(四)——canvas绘图、WebGL、SVG

    一.Canvas canvas是HTML5中新增一个HTML5标签与操作canvas的javascript API,它可以实现在网页中完成动态的2D与3D图像技术.<canvas> 标记和 ...

  9. c#编程基础之枚举

    枚举的意义就在于限制变量取值范围. 当可以确定的几种取值时才可以用. 如果输入一个字符串需要进行判断是否是我们需要的字符串时,则一般需要这样写: using System; using System. ...

  10. 12.JAVA之GUI编程打开与保存文件

    功能:java图形用户界面开发,练习打开保存文件 代码如下: import java.awt.FileDialog; import java.awt.Frame; import java.awt.Me ...