Git官方提供的快速入门教程:https://try.github.io/levels/1/challenges/1

特点:Git极其强大的分支管理;分布式版本

集中式版本控制系统,版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆。集中式版本控制系统最大的毛病就是必须联网才能工作。

使用Git

1.创建版本库

首先,选择一个合适的地方,创建一个空目录,通过git init命令把这个目录变成Git可以管理的仓库

zhangqulideMacBook-Air:~ zhangquli$ mkdir git_test
zhangqulideMacBook-Air:~ zhangquli$ cd git_test
zhangqulideMacBook-Air:git_test zhangquli$ git init
Initialized empty Git repository in /Users/zhangquli/git_test/.git/

  

2。把文件添加到版本库

所有的版本控制系统,其实只能跟踪文本文件的改动,比如TXT文件,网页,所有的程序代码等等,Git也不例外。版本控制系统可以告诉你每次的改动,比如在第5行加了一个单词“Linux”,在第8行删了一个单词“Windows”。而图片、视频这些二进制文件,虽然也能由版本控制系统管理,但没法跟踪文件的变化,只能把二进制文件每次改动串起来,也就是只知道图片从100KB改成了120KB,但到底改了啥,版本控制系统不知道,也没法知道。

把一个文件放到Git仓库只需要两步。

第一步,用命令git add告诉Git,把文件添加到仓库

第二步,用命令git commit告诉Git,把文件提交到仓库:

zhangqulideMacBook-Air:git_test zhangquli$ git add a.txt
zhangqulideMacBook-Air:git_test zhangquli$ git commit a.txt
[master (root-commit) 0c9192c] add a file a.txt #可以使用git commit -m "add a file a.txt“ 添加描述

  

3.修改文件

修改文件后,运行git status命令看看结果:

zhangqulideMacBook-Air:git_test zhangquli$ vi a.txt
zhangqulideMacBook-Air:git_test zhangquli$ git status
# On branch master
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: a.txt
#
no changes added to commit (use "git add" and/or "git commit -a")#a.txt被修改过了,但还没有准备提交的修改

 看看具体修改了什么内容,需要用git diff这个命令看看

zhangqulideMacBook-Air:git_test zhangquli$ git diff a.txt
diff --git a/a.txt b/a.txt
index de891d0..14078f4 100644
--- a/a.txt
+++ b/a.txt
@@ -1 +1,2 @@
heiheiehi
+changed

  

知道了对readme.txt作了什么修改后,再把它提交到仓库就放心多了,提交修改和提交新文件是一样的两步 git add   git commit

版本回退

版本控制系统肯定有某个命令可以告诉我们历史记录,在Git中,我们用git log命令查看:

zhangqulideMacBook-Air:git_test zhangquli$ git log
commit 8ed1c1a1d5666a98d2464787177f61e2a23126a6 #版本号
Author: zqlmmd <zhangquli@zhangqulideMacBook-Air.local>
Date: Sun May 29 23:46:24 2016 +0800 add a line #commit的描述 commit 0c9192cfde234fc37b351f959cc791ebb1c3f68a
Author: zqlmmd <zhangquli@zhangqulideMacBook-Air.local>
Date: Sun May 29 23:29:35 2016 +0800 add a file a.txt

我们要把当前版本回退到上一个版本,首先要知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。然后使用git reset命令  --hard参数

zhangqulideMacBook-Air:git_test zhangquli$ git reset --hard HEAD^
HEAD is now at 0c9192c add a file a.txt zhangqulideMacBook-Air:git_test zhangquli$ git log
commit 0c9192cfde234fc37b351f959cc791ebb1c3f68a
Author: zqlmmd <zhangquli@zhangqulideMacBook-Air.local>
Date: Sun May 29 23:29:35 2016 +0800 add a file a.txt

  再回去

$ git reset --hard 3628164
HEAD is now at 3628164 append GPL

  

Git学习01 --git add, git commit , git log ,git status, git reset --hard, head的更多相关文章

  1. Git 学习01

    一.下载并安装git bash 双击打开出现命令窗口 创建一个版本库非常简单,首先,选择一个合适的地方,创建一个空目录: cd F: mkdir learngit pwd F/learngit 显示当 ...

  2. Git学习总结(9)——如何构建你自己的 Git 服务器

    现在我们将开始学习如何构建一个Git服务器,如何在具体的事件中写一个针对特定的触发操作的自定义Git(例如通告),如何发布你的代码到一个网站. 目前为止,用户对Git的焦点主要在Git的使用上.这篇文 ...

  3. 八、git学习之——忽略特殊文件、配置别名、搭建git服务器

    原文来自 一.忽略特殊文件 有些时候,你必须把某些文件放到Git工作目录中,但又不能提交它们,比如保存了数据库密码的配置文件啦,等等,每次git status都会显示Untracked files . ...

  4. git学习笔记04-将本地仓库添加到GitHub远程仓库-git比svn先进的地方

    第1步:创建SSH Key.在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步. 如果没有,打开Shel ...

  5. git学习笔记:一台电脑上配置两个git账户

    如何在一台电脑上配置两个git账户,现在云端仓库很多,有开源中国的 gitee.com 微软的 github.com 还有 gitlab.com 和 bitbucket.org 等等,下面是具体步骤 ...

  6. Git以及github的使用方法(二)创建仓库,git add添加到“暂储区”,git commit添加到“本地仓库”

    什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改.删除,Git都能跟踪,以便任何时刻都可以追踪历史,或 ...

  7. git 学习使用总结三(远程仓库操作)

    这篇文章仅供自己以后翻阅加深记忆,要系统的学习 git 教程(中文版),请移步到 liaoxuefeng.com 学习 git 教程部分. pull, fetch, clone, push, chec ...

  8. Git学习(一):初始化仓库、添加文件、版本回退

    目录 Git学习(一):初始化.添加文件.版本回退 初始化一个仓库 添加文件到Git仓库 版本回退 Git学习(一):初始化.添加文件.版本回退 初始化一个仓库 本文使用的命令行工具为cmder,部分 ...

  9. Git学习记录 力做全网最强入门教程

    目录 Git学习记录 力做全网最强入门教程 什么是GitHub? 什么是Git? Git的配置 Git的安装(只介绍windos操作系统下) Git的配置 至此我们的入门教程到此结束,更新中级教程要等 ...

随机推荐

  1. Html 编码 queryUrl = encodeURI(queryUrl);

    Html  编码 queryUrl = encodeURI(queryUrl);

  2. css3的loadding效果

    <!DOCTYPE html> <html> <head> <title>CSS3 loading效果</title> <meta c ...

  3. TEA加密算法的C/C++实现

    TEA(Tiny Encryption Algorithm) 是一种简单高效的加密算法,以加密解密速度快,实现简单著称.算法真的很简单,TEA算法每一次可以操作64-bit(8-byte),采用128 ...

  4. Android的debug.keystore拒绝访问导致的生成异常及解决方案

    构建Android应用程序的时候输出异常:[apkbuilder] keytool 错误: java.io.FileNotFoundException: C:\Users\my\.android\de ...

  5. Spring Boot 配置优先级顺序

    一般在一个项目中,总是会有好多个环境.比如: 开发环境 -> 测试环境 -> 预发布环境 -> 生产环境 每个环境上的配置文件总是不一样的,甚至开发环境中每个开发者的环境可能也会有一 ...

  6. tomcat j2ee 目录结构

    一.TOMCAT的目录结构 /bin:存放windows或Linux平台上启动和关闭Tomcat的脚本文件 /conf:存放Tomcat服务器的各种全局配置文件,其中最重要的是server.xml和w ...

  7. perl 爬取csdn

    <pre name="code" class="python">use LWP::UserAgent; use POSIX; use HTML::T ...

  8. 2015第10周三jquery ui position

    jQuery UI API - .position() 所属类别 方法重载(Method Overrides) | 方法(Methods) | 实用工具(Utilities) 用法 描述:相对另一个元 ...

  9. PCRE-正则库及用法

    摘自http://blog.chinaunix.net/uid-26575352-id-3517146.html    在C语言中利用PCRE实现正则表达式 http://www.pcre.org/ ...

  10. 对数组元素进行排序的方法总结(利用C++)

    首先,对数组元素进行排序方法总结为以下两类: 一.简单排序算法(时间复杂度O(n*n)) 1.插入排序 2.选择排序 3.交换排序,即冒泡排序 二.先进排序算法(时间复杂度O(n*logn)) 1.快 ...