1、创建版本库
     版本库又可以称为仓库(repository),可以简单理解为一个目录,在这个目录下的所有文件都可以被git管理起来,每个文件的新增、修改、删除Git都可以跟踪,以便在任何时刻都可以追踪历史,或者在将来某个时刻进行还原。
     创建版本库首先先创建一个空目录,git负责的是管理这个目录下所有的文件。
     然后通过git init命令吧这个目录变成Git可以管理的仓库。执行命令之后会产生一个.git的目录,这个目录是Git用来跟踪和管理版本库的。不能手动修改。
$ git init
Initialized empty Git repository in XXXXX
 
     把文件放在版本库中管理:
添加文件,添加成功就不会有消息返回。
$ git add <file1> <file2>
例如
$ git add readme.txt readme1.txt
使用git commit提交到版本库,-m是提交说明,可以不写,但是为了清晰阅读这是必要添加。
$ git commit -m "first commit"
2、版本退回
     git log可以查看版本库的提交记录,或者是git log --pretty=online。
     一般会看到一大串无规律的数字或者字母,这还是版本号 commit id ,这个版本号和一般的1、2、3...递增的版本号不一样,这是有SHA1计算出来的很大的数字,用十六进制的版本号。使用这么复杂的版本号的原因是Git是分布式的版本控制系统,如果使用递增的版本号肯定会有冲突的。
     每提交一个新版本,Git胡自动把他们串成一条时间线,如果使用可视化工具查看Git历史可以很清楚的看到提交的历史时间线。
     版本退回,在Git中,Head表示当前版本,也就是最新提交的版本,上一个版本就是Head^,上上个版本就是Head^^,向后退版本数过多的时候可以使用 Head~n,来表示,向前退100个版本写成 Head~100。
     退回上个版本

 $ git reset --hard HEAD^ 
     指定版本号退回,版本号( commit id )就是一串很长的十六进制,如果记不全,可以只写前面几位。

$ git reset --hard XXXXX
     Git的Head相当于一个指针,版本退回只是把Head指向当前版本改为指向其他版本,所以Git的版本退回很快。
     当然,极有可能一不小心就退回了一个奇怪的版本,自己并不认得,或者执行了什么命令也不记得了,相当于在Git里面迷路了,这时候可以使用 git reflog来查看命令历史,这样相当于找到一个指路明灯。
 
3、git的暂存区和工作区
     stage在git中的概念十分重要,我们简称为暂存区。在把文件添加进版本库进行管理的时候会进行的两个步骤,git add和git commit。git add是把工作区文件添加进暂存区,然后提交的时候是把暂存区的所有内容提交到当前分支。简单来说就是所有的文件修改都会先放在暂存区,然后一次性提交到分支中,要是不知道文件是否已经添加进入暂存区,可以使用git status查看所有文件的状态就可以查看出各个文件的详细状态。一定要先add添加进暂存区,然后再commit提交到分支,否则直接commit是没有提交修改内容的。
 
4、撤销修改 git checkout -- file
     撤销修改有两种情况:一种是文件在工作区修改之后还没有存放到暂存区,撤销修改命令是將工作区恢复回版本库一模一样的状态。
     第二种是文件已经添加到暂存区了,工作区又做了修改,撤销修改就將工作区恢复回暂存区后的状态。
     总之就是让工作区文件回到最近一次git commit或者是git add时状态。
 
     但是,修改错误的文件添加到了暂存区,这时候可以把暂存区撤销掉(unstage),使用命令git reset HEAD file 可以把暂存区的修改撤销掉重新放回工作区。git reset的命令可以回退版本,也可以將暂存区的修改回退到工作区。
     还有一种情况是修改错误的文件已经提交到版本库了,撤销修改的办法就是回退版本。
 
     要是在工作区删除一个文件,但是这样会导致工作区和暂存区状态不一致,可以使用git rm file来从版本库删除该文件。
     一不小心删除了某个文件,也可以使用git checkout -- file来找回最新文件。
     
 
 
 
 
     
     

Git基本使用教程的更多相关文章

  1. Git使用详细教程(一)

    很久不发博客,最近有兴趣想写点东西,但 Live Writer 不支持从Word复制图片,疯狂吐槽下 Git使用详细教程(一) Git使用详细教程(二) 该教程主要是Git与IntelliJ IDEA ...

  2. 在Dropbox上搭建私有的Git仓库的教程

    导读 Git版本控制系统需要一个服务器端,而GitHub上要想创建私有的Git服务器端仓库则触及到收费项目,于是这里我们利用Dropbox的免费空间,来看一下在Dropbox上搭建私有的Git仓库的教 ...

  3. git github 使用教程

    参考文章:文章地址: http://wuyuans.com/2012/05/github-simple-tutorial/ github是一个基于git的代码托管平台,付费用户可以建私人仓库,我们一般 ...

  4. git学习基础教程

    分享一个git学习基础教程 http://pan.baidu.com/s/1o6ugkGE 具体在网盘里面的内容..需要的学习可以直接下.

  5. git 入门教程之 git 私服搭建教程

    git 私服搭建教程 前几节我们的远程仓库使用的是 github 网站,托管项目大多是公开的,如果不想让任何人都能看到就需要收费,而且 github 网站毕竟在国外,访问速度太慢,基于上述两点原因,我 ...

  6. Git&GitHub-基础教程

    目录 1. Git简介 1.1 什么是版本控制系统? 1.2. Git的历史 1.3. 什么是分布式?什么是集中式? 2. Git安装 3. 创建一个版本库 4. Git的语法教程 4.1. 提交一个 ...

  7. 图解Windows下 GIT GUI 使用教程

    https://jingyan.baidu.com/article/19020a0a7ae6af529c284248.html 本篇经验将和大家介绍Windows下 GIT GUI 使用教程,希望对大 ...

  8. Git 相关工具及教程地址

    一.Git GUI 客户端 Git 客户端下载(Windows) TortoiseGit 客户端下载(Windows) Sourcetree 客户端下载(Windows.Mac) Git Extens ...

  9. FastAdmin 推荐 Git 在线学习教程

    FastAdmin 推荐 Git 在线学习教程 因为 FastAdmin 推荐使用 Git 管理代码,有很多小伙伴对 Git 不是很熟悉. 也苦于找不到好的教程,我就分享一个 Git 在线学习教程. ...

  10. GIT GUI简易教程

    GIT GUI简易教程 前言 之前一直想一篇这样的东西,因为最初接触时,我也认真看了廖雪峰的教程,但是似乎我觉得讲得有点多,而且还是会给我带来很多多余且重复的操作负担,所以我希望能压缩一下它在我工作中 ...

随机推荐

  1. 简述移动端IM开发的那些坑:架构设计、通信协议和客户端

    1.前言 有过移动端开发经历的开发者都深有体会:移动端IM的开发,与传统PC端IM有很大的不同,尤其无线网络的不可靠性.移动端硬件设备资源的有限性等问题,导致一个完整的移动端IM架构设计和实现都充满着 ...

  2. easyuidatagrid中load,reload,loadData的区别。

    摘要:datagrid中有load,reload,loadData那三个方式,皆是加载数据的,但又有差别.下面让我们一起来看看: 首先,load方法,比如我已经定义一个datagrid的id为grid ...

  3. Windows 10 开始菜单修改程序

    Windows 10虽然恢复了开始菜单,但与经典的菜单相比还是有些变化.对于菜单项中名称过长的只能显示一部分,比如SQL Server Management Studio这种名称比较长的菜单项名称,常 ...

  4. .NET实现Office Excel自定义公式 广泛应用于报表与数据分析

    在管理软件开发的功能点中,有相当一部分功能是与Excel做数据交互,产生Excel 数据报表.如果Excel报表的数据计算方法很有规律可循,则可以通过自定义公式来解决.比如常见的资产负债表,利润表,取 ...

  5. CSS 框模型( Box module )

    框和布局 在 KB005: CSS 层叠 中已经介绍了 CSS 的重要之处.CSS 可以说是页面表现的基础, CSS 可以控制布局,控制元素的渲染. 布局是讲在电影画面构图中,对环境的布置.人物地位的 ...

  6. Codeforces Round #277(Div. 2) (A Calculating Function, B OR in Matrix, C Palindrome Transformation)

    #include<iostream> #include<cstring> #include<cstdio> /* 题意:计算f(n) = -1 + 2 -3 +4. ...

  7. java中同步嵌套引起的死锁事例代码

    /* 目的:自己写一个由于同步嵌套引起的死锁! 思路:多个线程在执行时,某一时刻,0-Thread绑定了LockA锁,1-Thread绑定了LockB锁! 当0-Thread要去绑定LockB锁时 和 ...

  8. html5的感想

    作为一名前端攻城尸,每天必不可少的就是要学习新的知识,直到you get it. 今天,又一次学习了html5,每一次学习都会有新的感受. 1.记得第一次学习的时候只是觉得html5多了一些新的标签, ...

  9. [linux] is not in the sudoers file

    $su - $visudo append usrname ALL=(ALL) ALL save done ctrl+d

  10. VS2012连接到OSC@Git

    osc终于全面开放git库了,这是我一直期待的事,也是促使我从CSDN转回OSC社区的重要原因之一.而这次我来教大家如何用osc@git来进行简单的版本控制.对于git,我自身也是近几周才开始学习,有 ...