你的位置:首页 > 操作系统

[操作系统]Git 学习总结(一)


前言:之前偶然的机会学习了廖老师关于Git学习的一个网站,讲解的很好很详细,通俗易懂,学习之余决定将廖老师帖子的精髓作一个总结(相当于是笔记啦~~),也方便日后查询巩固,希望大家共勉!查看廖老师详细原帖!

1、安装Git

这里,我只介绍一下在Linux系统下Git的安装,如果需要了解Unix、Mac和Windows几大系统下Git的安装方法,可以自行百度,或者参考本帖开头给出的廖老师的Git学习网站进行查询。

(1)通过git命令查看系统是否安装Git,如出现以下情况:

$ gitThe program 'git' is currently not installed. You can install it by typing:sudo apt-get install git

(2)可以通过一条 sudo apt-get install git 命令进行Git的安装,如果你的Linux版本比较老,可以通过 sudo apt-get install git-core 命令进行Git安装。

2、创建版本库repository

~/workspaces$ mkdir MaxinGit      // 创建目录~/workspaces$ cd MaxinGit       // 进入目录~/workspaces/MaxinGit$ pwd       // 显示目录路径/home/xin02.ma/workspaces/MaxinGit

~/workspaces/MaxinGit$ git init    // 通过git init命令把这个目录编程Git可以管理的仓库Initialized empty Git repository in /home/xin02.ma/workspaces/MaxinGit/.git/    // 此目录为空目录

~/workspaces/MaxinGit$ ls -ah. .. .git     // 可以发现多了一个.git目录,不要手动修改!

3、添加文件至版本库

编写一个testDemo.txt文件,内容如下:

Git is a version control system.Git is free software.

执行以下两个步骤:

(1)添加

~/workspaces/MaxinGit$ git add testDemo.txt

(2)提交(可add多次,一并commit)

~/workspaces/MaxinGit$ git commit -m "wrote a testDemo file"   // -m 后面输入的是本次提交的说明[master (root-commit) d1cee39] wrote a testDemo file1 file changed, 2 insertions(+)   // 一个文件被改动,插入了两行create mode 100644 testDemo.txt

小结:

  (1)初始化一个Git仓库,使用 git init 命令。

  (2)添加文件到Git仓库,分两步:第一步,使用命令git add <file>,可反复多次使用,添加多个文件;

                  第二步,使用命令git commit完成。

4、修改文件

对testDemo文件进行修改,修改内容如下:

Git is a distributed version control system.Git is free software.

运行 git status 命令查看结果:

~/workspaces/MaxinGit$ git status   // 掌握仓库当前的状态

通过 git diff 命令可以查看文件修改了哪些内容:

~/workspaces/MaxinGit$ git diff testDemo.txt

此时,我们可以执行 git add 命令了,在执行 git commit 命令之前,再次执行 git status 看下版本库的状态:

~/workspaces/MaxinGit$ git add testDemo.txt~/workspaces/MaxinGit$ git status

我们可以发现,显示将要提交的修改包括testDemo.text文件,此时我们可以 git commit 了:

~/workspaces/MaxinGit$ git commit -m "add distributed"
[master fe73dca] add distributed
1 file changed, 1 insertion(+), 1 deletion(-)

此时,再 git status 看一下状态:

~/workspaces/MaxinGit$ git status

Git告诉我们当前没有需要提交的修改,而且,工作目录是干净(working directory clean)的。

5、版本回退

在Git中,我们可以通过 git log 命令查看每次修改的内容:

~/workspaces/MaxinGit$ git log

如果嫌输出信息太多,看得眼花缭乱的,可以试试加上 --pretty=oneline 参数:

~/workspaces/MaxinGit$ git log --pretty=oneline

可以通过版本回退命令 git reset 回退到上一个版本:

~/workspaces/MaxinGit$ git reset --hard HEAD^
HEAD is now at d1cee39 wrote a testDemo file

我们发现,此时已经回退到前一个版本了。

此时,我们 git log 看一下:

~/workspaces/MaxinGit$ git log

如果,此时你想回退到之前最新的版本,怎么版呢?我们可以采用如下代码的方式:

~/workspaces/MaxinGit$ git reset --hard fe73dca  // fe73dca为最新版本的commit id号,版本号不需要写全
HEAD is now at fe73dca add distributed

Git提供了一个 git reflog 命令用于记录每一次修改的log信息和操作命令,代码如下:

~/workspaces/MaxinGit$ git reflog

此时,我们可以发现每一次进行修改的操作命令和对应的commit id信息,这样,我们可以通过git reset --hard <id>快捷的回退到任何一个版本。

6、撤销修改

(1)我们对testDemo.txt文件继续修改,添加一行语句:

Git is a distributed version control system.Git is free software.I hate money.    // 新增语句

此时,你发现,其实我们都 like money,那么怎么办?你可以手动删除,不过这里有另外一种方法,我们先 git status 一下,看结果:

~/workspaces/MaxinGit$ git status

我们发现有一条语句:(use "git checkout -- <file>..." to discard changes in working directory) 可以丢弃工作区(文件的创建和修改区域即为工作区)的修改:

~/workspaces/MaxinGit$ git checkout -- testDemo.txt     // -- 很重要,如果没有--,直接git checkout就是切换分支的命令~/workspaces/MaxinGit$ git status# On branch masternothing to commit (working directory clean)

此时,我们发现,修改被撤销了!

总结:接下来,我们会讨论如果不小心add了,如何撤销修改,下帖很快会与大家见面!