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. 符号三角形(hdu 2510 搜索+打表)

    符号三角形 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  2. 1006 Do the Untwist

    考察编程基础知识,用到字符和数字相互转化等.形式是描述清楚明文和暗文的转化规则. #include <stdio.h> #include <string.h> #define ...

  3. JS--switch 语句

    说明:js中switch语句的语法风格 function convert(x){ switch(x) { case "string": document.write("s ...

  4. IOS开发UI篇-NavigationController的基本使用

    一.简介 一个iOS的app很少只由一个控制器组成,除非这个app极其简单 当app中有多个控制器的时候,我们就需要对这些控制器进行管理 有多个view时,可以用一个大的view去管理1个或者多个小v ...

  5. 十二、享元(Flyweight)模式--结构模式(Structural Pattern)

    Flyweight在拳击比赛中指最轻量级,即"蝇量级",有些作者翻译为"羽量级".这里使用"享元 模式"更能反映模式的用意. 享元模式以共享 ...

  6. C# unsafe code

    (*) unsafe 和 fixed unsafe {                    ];     ; i < array.Length; i++)     {         arra ...

  7. shell 脚本文件十六进制转化为ascii码代码

    十六进制的A转化为十进制ASCII码: 1 printf "%d\n" "'A" 十六进制的A转化为十六进制ASCII码: 1 printf "%x\ ...

  8. shell重定向

    输入重定向 和输出重定向一样,Unix 命令也可以从文件获取输入,语法为: command < file 这样,本来需要从键盘获取输入的命令会转移到文件读取内容. 注意:输出重定向是大于号(&g ...

  9. Poj 2187 Beauty Contest_旋转凸包卡壳

    题意:给你n个坐标,求最远的两点距离 思路:用凸包算法求处,各个定点,再用旋转凸包卡壳 #include <iostream> #include <cstdio> #inclu ...

  10. Python 字符串相关操作

    # 1 * 重复输出字符串 print('hello'*2) # 2 [] ,[:] 通过索引获取字符串中字符,这里和列表的切片操作是相同的,具体内容见列表 print('helloworld'[2: ...