参考资料:

1. https://www.linux.com/learn/tutorials/796387-beginning-git-and-github-for-linux-users/

2. https://www.howtoforge.com/tutorial/install-git-and-github-on-ubuntu-14.04/

3. https://www.digitalocean.com/community/tutorials/how-to-install-git-on-ubuntu-14-04

4. http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

☢ Ubuntu安装命令:

sudo apt-get install git

☢ 配置:

git config --global user.name "User Name"
git config --global user.email "username@example.com"

☢ 创建repository:

sudo mkdir Pocketin

cd Pocketin

sudo git init

用下边的命令可以看到一个.git的目录,该目录是Git用来跟踪管理版本库的:

ls -ah

用vim创建readme.txt文件,并输入一些内容。

sudo vim readme.txt

添加文件readme.txt到repository中(可以同时add多个文件):

sudo git add readme.txt

提交该文件到repository,“-m”是messge的意思,用以对本次提交进行说明:

sudo git commit -m "Add a readme file for testing."

☢ 提交更改:

当修改或者增删了文件,可以用下边的命令查看repository当前的状态。

sudo git status

用下边的命令“git diff”可以查看被修改文件到底被修改了什么内容:

sudo git diff readme.txt

sudo git add readme.txt

sudo git status

sudo git commit -m "Add distributed."

sudo git status

注意:git add命令是将文件修改添加到暂存区Stage中,而git commit则是将暂存区中的所有内容提交到当前分支。因此,可知GIT管理的是修改,而不是文件。

☢ 版本回滚:

用下边的命令“git log”显示由近至远的提交日志:

sudo git log

使用下边的命令可以简化显示结果,只显示一行信息:

sudo git log --pretty=oneline

GIT的commit id是由SHA1计算出来的一个用十六进制表示的庞大数字。

下边的命令会让你回到上一个版本:

sudo git reset --hard HEAD^

下边的命令会让你回到上上个版本:

sudo git reset --hard HEAD^^

下边这个命令会让你回到上20个版本:

sudo git reset --hard HEAD~

还可以直接用版本号到你制定的版本(版本号可以不用写全):

sudo git reset --hard 2a2e569c9bd589afedc5e3a3c22683c3ca64d7f3

注意:如果你回滚了,在没有关闭当前窗口的情况还是可以回到未来的某个版本的,而一旦你关闭了窗口就不好办了(还是可以回去,下边会提到)。

版本回归只是修改了HEAD指针指向的位置,所以修改起来非常快。

使用下边的命令可以查看命令历史(然后恢复到指定的版本):

sudo git reflog

题外话(关于“--”):A  --  signals the end of options and disables further option processing. Any arguments after the -- are treated as filenames and arguments.  An argument of - is equivalent to --.

☢ 撤销修改:

如果想要回到最近一次git commitgit add时的状态,可以使用下边的命令:

sudo git checkout -- readme.txt

☢ 删除文件:

在Git中,删除也是一个修改操作。你可以通过rm命令直接删除文件,然后在用“git rm”命令从版本库中删除该文件。

sudo git add test.txt

sudo git commit -m "Add test.txt."

sudo rm -f test.txt

从版本库中伤处该文件。

sudo git status
sudo git rm test.txt
sudo commit -m "Remove test.txt."

但是,如果误删了呢?你可以通过“git checkout”命令将文件恢复到最新版本(用版本库里的版本替换工作区的版本)。

sudo git checkout -- test.txt

Linux基础※※※※如何使用Git in Linux(一)的更多相关文章

  1. Linux基础※※※※如何使用Git in Linux(二)

    参考资料: 1. http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 2. Git-简 ...

  2. Linux基础学习(1)--Linux系统简介

    第一章——Linux系统简介 1.UNIX和Linux发展史: 1.1 unix发展史: (1)1965年,美国麻省理工学院(MIT).通用电气公司(GE)及AT&T的贝尔实验室联合开发Mul ...

  3. Linux基础回想(1)——Linux系统概述

    1. 什么是操作系统?它与硬件以及其它软件之间的关系是如何的? 操作系统是控制和管理计算机系统内各种硬件和软件资源.有效组织多道程序执行的系统软件(或程序集合),是用户和计算机之间的接口.详细的说: ...

  4. 大数据学习笔记之Linux基础(一):Linux初窥

    文章目录 一.Linux入门概述 1.1 概述 1.2 下载地址 1.3 Linux特点 1.4 Linux和Windows区别 二.VM安装相关 2.1 安装VMWare虚拟机 2.2 安装Cent ...

  5. linux基础-第十四单元 Linux网络原理及基础设置

    第十四单元 Linux网络原理及基础设置 三种网卡模式图 使用ifconfig命令来维护网络 ifconfig命令的功能 ifconfig命令的用法举例 使用ifup和ifdown命令启动和停止网卡 ...

  6. Linux基础教程(一)——Linux系统简介

    Linux的概述 Linux是基于Unix的开源免费的操作系统,由于系统的稳定性和安全性几乎成为程序代码运行的最佳系统环境.Linux是由Linus Torvalds(林纳斯·托瓦兹)起初开发的,由于 ...

  7. java程序员菜鸟进阶(十五)linux基础入门(三)linux用户和组管理

    我们大家都知道,要登录linux操作系统,我们必须要有一个用户名和密码.每一个用户都由一个惟一的身份来标识,这个标识叫做用户ID.系统中的每一个用户也至少需要属于一个"用户分组". ...

  8. linux基础内容学习一:linux下的分区及安装

    linux看系统版本信息 uname -a 如果显示为i386,i686则为32位系统,如果为x86_64则为64位 一块硬盘最多可以有四个主分区其中一个主分区可以用一个扩展分区替换,在这个扩展分区中 ...

  9. Linux基础学习(13)--Linux系统管理

    第十三章——Linux系统管理 一.进程管理 1.进程查看: (1)进程简介:进程是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源. (2)进程管理的 ...

随机推荐

  1. java中==与equal()方法的区别

    ==比较的是对象的地址,也就是是否是同一个对象: equal比较的是对象的值. Integer r1 = new Integer(900);//定义r1整型对象Integer r2 = new Int ...

  2. Python 的命令行参数处理 optparse->argparse

    optaprse自2.7版开始弃用:弃用optparse模块,不会进一步开发,将继续开发argparse模块作为替代. 但是用习惯了optparse,还是很好用的撒. optparse使用起来,相比旧 ...

  3. android log机制——输出log【转】

    转自:http://blog.csdn.net/tdstds/article/details/19084327 目录(?)[-] 在android Java code中输出log Logprintln ...

  4. 关于JDK,tomcat,MyEclipse的配置

    1.下载安装JDK 在自定义安装路径时,jdk和之后的jre文件夹是属于平行结构,我的安装路径为:D:\jdk\jdk1.6.0_43和D:\jdk\jre6 然后是对环境变量的配置, 计算机→属性→ ...

  5. Swoole 遇上 PHP会是怎样的结果呢

    一直想写点Swoole的东西,毕竟它重新定义了php,却一直不知道怎么下手写 Swoole涉及的知识点非常多,互为表里,每次想写都发现根本理不出一个头绪 Swoole是一个php的扩展,它的核心目的就 ...

  6. 9、Http回顾/Servlet

    1 Http回顾 Http协议: 1)http协议: 对浏览器客户端和服务器端之间数据传输的格式规范. 2)http请求:浏览器->服务器端 格式: 请求行(请求方式(GET/POST) 请求资 ...

  7. 不定参数的传递VA_LIST的用法

    VA_LIST的用法:(1)首先在函数里定义一具VA_LIST型的变量,这个变量是指向参数的指针: (2)然后用VA_START宏初始化变量刚定义的VA_LIST变量,使其指向第一个可 变参数的地址: ...

  8. 使用mysqlbinlog server远程备份binlog的脚本

    #注意,备份机到远程mysql服务器需要免密钥登录,此脚本放到计划任务中每五分钟执行一次,避免mysqlbinlog server进程长时间挂掉无人知晓   cat backup_binlog.sh ...

  9. [UML]转:浅谈UML的概念和模型之UML九种图

    转自:http://blog.csdn.net/jiuqiyuliang/article/details/8552956 目录: UML的视图 UML的九种图 UML中类间的关系 上文我们介绍了,UM ...

  10. HDU 4707:Pet

    Pet Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submis ...