Git 学习总结
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Git 学习总结相关的知识,希望对你有一定的参考价值。
前言:之前偶然的机会学习了廖老师关于Git学习的一个网站,讲解的很好很详细,通俗易懂,学习之余决定将廖老师帖子的精髓作一个总结(相当于是笔记啦~~),也方便日后查询巩固,希望大家共勉!查看廖老师详细原帖! |
1、安装Git
这里,我只介绍一下在Linux系统下Git的安装,如果需要了解Unix、Mac和Windows几大系统下Git的安装方法,可以自行百度,或者参考本帖开头给出的廖老师的Git学习网站进行查询。
(1)通过git命令查看系统是否安装Git,如出现以下情况:
$ git The 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 file 1 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 master nothing to commit (working directory clean)
此时,我们发现,修改被撤销了!
总结:接下来,我们会讨论如果不小心add了,如何撤销修改,下帖很快会与大家见面! |
以上是关于Git 学习总结的主要内容,如果未能解决你的问题,请参考以下文章