之前的帖子已经讲述了什么是 Git 的仓库,并且添加了文件到 Git 的仓库,这里我们来学习下一些简单的操作。

status 和 diff

   之前我们已经提交了了一个 testFile.txt 的文件,现在我们修改这个文件。我们往这个文件里面追加一行内容。使用 status 进行查看:

hubwiz@bad97b95201f:~/learngit$ 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: testFile.txt
#
no changes added to commit (use "git add" and/or "git commit -a")

  我们可以看到 status 命令告诉我们 testFile.txt 文件已经被修改,但是没有提交。

  我们这里使用  git diff 命令查看改动的内容:

hubwiz@bad97b95201f:~/learngit$ git diff
diff --git a/testFile.txt b/testFile.txt
index 5f1bf21..a70afd3 100644
--- a/testFile.txt
+++ b/testFile.txt
@@ -1 +1,2 @@
the first file for test git
+study status and diff command

  我们通过对比发现 testFile.txt 文件添加了一行 “study status and diff command“ 接下来用 git addgit commit 将文件添加并且提交。

hubwiz@bad97b95201f:~/learngit$ git add testFile.txt
hubwiz@bad97b95201f:~/learngit$ git commit -m "add status and diff command"
[master cfd9766] add status and diff command
1 file changed, 1 insertion(+)

log

  到这里我们已经提交了两次了,我们如何查看提交的历史呢?可以使用 git log 命令。

hubwiz@bad97b95201f:~/learngit$ git log
commit cfd976666ffd0067a1505eb7ee28303feb392f4d
Author: Jeff.Ma <mywr1026@163.com>
Date: Wed Mar 1 14:57:51 2017 +0000 add status and diff command commit 0de43c0a4040a129652b74214b638a1b6e62cad0
Author: Jeff.Ma <mywr1026@163.com>
Date: Tue Feb 28 14:50:10 2017 +0000 First commit the file for test Git

  可以看到两次提交的信息都打印出来了,最新的提交是在最上面显示的。而其中的 commit 后面的内容就是版本号。

reset

  突然发现这次提交是不正确的,我们要回退到上个版本。可以使用 git reset --hard HEAD^

hubwiz@bad97b95201f:~/learngit$ git reset --hard HEAD^
HEAD is now at 0de43c0 First commit the file for test Git

  这样我们就回退到上个版本了。我们可以使用 git reset --head <版本号> 回退到指定的版本

  当然凭借我们的记忆是无法记住每次的版本号的,那么怎么办?有人说可以使用 git log 查看,那么你可以试下,当你回退到上个版本的时候再使用 git log 将没有办法看到我们在学习 status 时候的改动了。那么怎么办呢? 这里我们可以使用 git relog 进行查看的。

hubwiz@bad97b95201f:~/learngit$ git reflog
0de43c0 HEAD@{0}: reset: moving to HEAD^
4ad0b03 HEAD@{1}: commit: add aaa
0de43c0 HEAD@{2}: reset: moving to HEAD^
cfd9766 HEAD@{3}: commit: add status and diff command
0de43c0 HEAD@{4}: commit (initial): First commit the file for test Git

  到这里我想大家应该对 Git 有了进一步的认识了吧,那还不赶紧自己动手试试!!!这里我想说下,本人的帖子都很短,并不是不想写这么多,而是觉得写的多了,一些读者看了后面就忘记前面的内容了,索性每次写一点点,然后读者看了后就去自己练习一下,会提升很大,毕竟真正的实践才会有所帮助。不多说了,洗碗去了!!!加油!!!

git 学习之基本操作的更多相关文章

  1. Git 学习笔记–基本操作

    Git 与 SVN 不同,是分布式的版本控制系统,不需要主服务器即可工作,实际中为了方便各个工作者间同步工作,通常还是会设置主服务器. Git的设置及初始化: 设置全局用户信息: luojiahu@u ...

  2. Git学习系列之Git基本操作拉取项目(图文详解)

    前面博客 Git学习系列之Git基本操作推送项目(图文详解) 当然,如果多人协作,或者多个客户端进行修改,那么我们还要拉取(Pull ... )别人推送到在线仓库的内容下来. 大神们是不推荐使用 pu ...

  3. Git学习系列之Git基本操作推送项目(图文详解)

    前面博客 Git学习系列之Git基本操作提交项目(图文详解) 如果完成到一定程度,那么可以推送到远端在线仓库. 推送之前,请确保你已经设置了全局的 user.name 和 user.email, 如果 ...

  4. Git学习系列之Git基本操作提交项目(图文详解)

    前面博客 Git学习系列之Git基本操作克隆项目(图文详解) 然后可以 cd 切换到 LispGentleIntro 目录, 新增或者修改某些文件.这里只是模拟一下操作, 实际情况可能是 使用 Ecl ...

  5. Git学习(4)基本操作

    1.版本提交 首先,接着上个Git学习(3)继续 我们先修改test.txt文本内容,增加一些信息进去,然后保存: Add a new data 第一步:运行命令 git status 命令查看文件是 ...

  6. Git学习笔记---协作的一般流程

    一般的操作流程 1.pull 王小坤与另一个同事张大炮一起开发一个项目,张大炮昨天修改了数据库读写的api,优化了执行速度,并把read()函数改名成了Read(),下午下班之前把这些代码push到服 ...

  7. Git 学习(八)其他

    Git 学习(八)其他 通过以上七章Git的学习,基本操作已差不多了,本章介绍一点落网之鱼:  包括如何忽略文件.配置别名.以及使用GitHub等. 当然,Git的强大远不是七章内容可概括的,之后可结 ...

  8. git学习------>写给 Git 初学者的7个建议

    PS:本文转载于(http://blog.jobbole.com/50603/),本文由 伯乐在线 - 吴鹏煜 翻译. 英文出处:(http://sixrevisions.com/web-develo ...

  9. git 学习笔记 —— 获取远端分支并修改后提交至远端仓库

    笔者最近进行开发过程中,所有参与者的代码需要通过 git 上传到远端仓库中,不同的模块对应不同的 git 分支,不同模块的数据需要从远端仓库中获取.这里记录下笔者从远端仓库中获取分支数据,进行修改,最 ...

随机推荐

  1. node后台启动

    node启动后会占用当前shell 后台启动方式: 1.用forever进行管理 npm install -g forever forever start index.js   2.使用nohub命令 ...

  2. maven-compiler-plugin 版本错误解决方法

    项目执行Maven build后出现WARNING提示.报如信息如下,根据报错信息猜测是maven-compiler-plugin的版本信息问题 [WARNING] [WARNING] Some pr ...

  3. Robot Framework连接MySQL数据库

    注:内容来自网络,整理之如下 Robot Framework连接mysql数据库需要: 1.安装databaselibrary.pymysql 通过cmd命令执行:pip install robotf ...

  4. 使用 Git 进行版本控制

    使用 Git 进行版本控制 版本控制软件让你能够拍摄处于可行状态的项目的快照.修改项目(如实现新功能)后,如果项目不能正常运行,可恢复到前一个可行状态. 通过使用版本控制软件,你可以无忧无虑地改进项目 ...

  5. Python strip()函数用法

    Python中字符串处理函数里有三个去空格(包括'\n', '\r', '\t', ' ')的函数: strip 同时去掉左右两边的空格lstrip 去掉左边的空格rstrip 去掉右边的空格 具体示 ...

  6. php数据库编程---mysqli扩展库

    1,mysqli扩展库允许我们访问MySQL数据库,并对MySql数据库进行curd操作.Mysqli扩展库比mysql扩展库加强了. 2,mysqli扩展库和mysql扩展库的比较 (1) mysq ...

  7. [ActionSprit 3.0] FMS接收正在播放的视频中嵌入的描述性信息(onMetaData事件)

    package { import flash.display.MovieClip; import flash.net.NetConnection; import flash.events.NetSta ...

  8. [ActionScript 3.0] 用TextField的方法getCharIndexAtPoint(x:Number, y:Number):int实现文字在固定范围内显示

    有时候我们遇到一行文字过多时必须固定文字的显示范围,但由于中英文所占字节数不一样,所以不能很好的用截取字符的方式去统一显示范围的大小,用TextField的getCharIndexAtPoint(x: ...

  9. ubuntu和centos安装docker

    一. UBUNTU系统上 1. 卸载旧版本(新系统不用执行) sudo apt-get remove docker docker-engine docker.io     2. 安装docker st ...

  10. python-json.loads()保持原json字符串的顺序

    import jsonfrom collections import OrderedDictmetadata = json.loads(text, object_pairs_hook=OrderedD ...