git 学习之基本操作
之前的帖子已经讲述了什么是 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 add 和 git 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 学习之基本操作的更多相关文章
- Git 学习笔记–基本操作
Git 与 SVN 不同,是分布式的版本控制系统,不需要主服务器即可工作,实际中为了方便各个工作者间同步工作,通常还是会设置主服务器. Git的设置及初始化: 设置全局用户信息: luojiahu@u ...
- Git学习系列之Git基本操作拉取项目(图文详解)
前面博客 Git学习系列之Git基本操作推送项目(图文详解) 当然,如果多人协作,或者多个客户端进行修改,那么我们还要拉取(Pull ... )别人推送到在线仓库的内容下来. 大神们是不推荐使用 pu ...
- Git学习系列之Git基本操作推送项目(图文详解)
前面博客 Git学习系列之Git基本操作提交项目(图文详解) 如果完成到一定程度,那么可以推送到远端在线仓库. 推送之前,请确保你已经设置了全局的 user.name 和 user.email, 如果 ...
- Git学习系列之Git基本操作提交项目(图文详解)
前面博客 Git学习系列之Git基本操作克隆项目(图文详解) 然后可以 cd 切换到 LispGentleIntro 目录, 新增或者修改某些文件.这里只是模拟一下操作, 实际情况可能是 使用 Ecl ...
- Git学习(4)基本操作
1.版本提交 首先,接着上个Git学习(3)继续 我们先修改test.txt文本内容,增加一些信息进去,然后保存: Add a new data 第一步:运行命令 git status 命令查看文件是 ...
- Git学习笔记---协作的一般流程
一般的操作流程 1.pull 王小坤与另一个同事张大炮一起开发一个项目,张大炮昨天修改了数据库读写的api,优化了执行速度,并把read()函数改名成了Read(),下午下班之前把这些代码push到服 ...
- Git 学习(八)其他
Git 学习(八)其他 通过以上七章Git的学习,基本操作已差不多了,本章介绍一点落网之鱼: 包括如何忽略文件.配置别名.以及使用GitHub等. 当然,Git的强大远不是七章内容可概括的,之后可结 ...
- git学习------>写给 Git 初学者的7个建议
PS:本文转载于(http://blog.jobbole.com/50603/),本文由 伯乐在线 - 吴鹏煜 翻译. 英文出处:(http://sixrevisions.com/web-develo ...
- git 学习笔记 —— 获取远端分支并修改后提交至远端仓库
笔者最近进行开发过程中,所有参与者的代码需要通过 git 上传到远端仓库中,不同的模块对应不同的 git 分支,不同模块的数据需要从远端仓库中获取.这里记录下笔者从远端仓库中获取分支数据,进行修改,最 ...
随机推荐
- 《html5 从入门到精通》读书笔记(三)
二.标签详解 标签 描述 4 5 <form> 定义表单. 4 5 <h1> to <h6> 定义标题1到标题6. 4 5 <head> 定义关于文档的 ...
- C#多线程编程实战1.1创建线程
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threa ...
- javascript实现俄罗斯方块游戏
观摩一下<编程之美>:“程序虽然很难写,却很美妙.要想把程序写好,需要写好一定的基础知识,包括编程语言.数据结构与算法.程序写得好,需要缜密的逻辑思维能力和良好的梳理基础,而且熟悉编程环境 ...
- HAOI2014 遥感监测
题目链接:戳我 比较水的一个题,直接处理点,找在直线上的可以覆盖到它的区间,然后做最小线段覆盖即可: 代码如下: #include<iostream> #include<cstdio ...
- php生成N个不重复的随机数实例
思路: 将随机数存入数组,再在数组中去除重复的值,即可生成一定数量的不重复随机数. /* * array unique_rand( int $min, int $max, int $num ) * 生 ...
- mycat 1.6.6.1 distinct报错问题
以前在mysql5.7上执行如下sql语句没有问题 SELECT DISTINCT u.*,c.content userCategory FROM m_user u LEFT JOIN m_categ ...
- linux性能评估与分析工具---CPU篇
一. uptime root@calm:~# uptime :: up days, :, user, load average: 0.04, 0.09, 0.04 这里主要关注load average ...
- 案例3-ubuntu和centos中自动部署tomcat相关服务的脚本
涉及redis,mysql,xtrabackup, tomcat 1. ubuntu中 #!/bin/bash #first, change to root #出错立刻中断 set -e apt-ge ...
- Badboy安装和介绍
Badboy安装和介绍 [前言] 欢迎来到我的博客 Badboy是用C++开发的动态应用测试工具,拥有强大的屏幕录制和回放功能,可提供图形结果分析功能,同时Badboy提供了将Web测试脚本直接导出生 ...
- ubuntu15.04下安装jdk8
前几天手贱,删掉了ubuntu自带的java,最后安装时遇到了Picked up JAVA_TOOL_OPTIONS的问题,经过网上各种找,终于被我弄成功了.下面将经验下载下面供大家方便: jdk8的 ...