zoukankan      html  css  js  c++  java
  • Git学习笔记(一)

    本系列学习笔记参考廖雪峰老师的Git教程,地址:https://www.liaoxuefeng.com/wiki/896043488029600

     

    Git学习笔记(一) https://www.cnblogs.com/littlemonsterksn/p/13562632.html

    Git学习笔记(二) https://www.cnblogs.com/littlemonsterksn/p/13583004.html

    Git学习笔记(三) https://www.cnblogs.com/littlemonsterksn/p/13583197.html

    Git学习笔记(四) https://www.cnblogs.com/littlemonsterksn/p/13593841.html

    Git学习笔记(五) https://www.cnblogs.com/littlemonsterksn/p/13598243.html

    一、在Windows上安装Git

    1. 在官网下载Git

    https://git-scm.com/downloads

    2. 安装好后,查询Git版本

    3. 设置名字和邮箱

    $ git config --global user.name "Jessiegit"
    $ git config --global user.email "xxxxx @gmail.com"

    二、创建一个版本库

    1. 选择一个合适的地方,创建一个空目录。本文在G盘

    $ mkdir learngit
    $ cd learngit/
    $ pwd

    2. 通过git init把这个目录变成Git可以管理的仓库,也就是初始化仓库

    初始化完成后可以发现当前目录下多了一个.git目录(一般不要手动修改里面的文件)。这个目录默认是隐藏的,用ls -ah可以看到

    $ git init
    $ ls -ah

    3. 编写一个readme.txt文件

    内容如下:

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

    把该文件放到learngit目录下

    4. 用git add,把文件添加到仓库

    $ git add readme.txt

    用git commit,把文件提交到仓库:

    $ git commit -m "wrote a readme file"

    git commit命令,-m后面输入的是本次提交的说明,最好是有意义的内容

    git commit命令执行成功后显示:

    1 file changed:1个文件被改动(新添加的readme.txt文件);2 insertions:插入了两行内容(readme.txt有两行内容)

    三、修改文件并查看状态

    1. 修改readme.txt文件

    改成如下内容:

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

     用git status命令看看结果:

    $ git status

    git status可以查看仓库当前的状态,上面的命令输出表示:readme.txt被修改过了,但还没有准备提交的修改

    用git diff这个命令,可以查看具体修改了什么内容

    $ git diff

    2. 提交修改和提交新文件

    和之前是一样的两步,第一步是git add:

    $ git add readme.txt

    在执行第二步git commit之前,再运行git status查看当前仓库的状态:

    $ git commit -m "add distributed"

    提交后,再用git status查看仓库的当前状态:

     Git显示当前没有需要提交的修改,而且,工作目录是干净(working tree clean)的

    四、版本回退

    1. 修改readme.txt文件

    Git is a distributed version control system.
    Git is free software distributed under the GPL.

    然后提交:

    $ git add readme.txt
    $ git commit -m "append GPL"

    用git log命令查看历史记录:

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

    $ git log --pretty=oneline

    2. 回退到上一个版本

    上一个版本就是HEAD^,上上一个版本就是HEAD^^

    往上100个版本写100个^比较容易数不过来,所以写成HEAD~100

    要把当前版本append GPL回退到上一个版本add distributed,可以使用git reset命令:

    $ git reset --hard HEAD^

    3. 回退到指定版本

    用git log查看现在版本库的状态,找到append GPL的commit id,就可以指定回到某个版本

    再查看readme.txt的内容:

    $ git reset --hard 79690e
    $ cat readme.txt

     4. 恢复到新版本

    若回退到了某个版本,又想恢复到新版本,但找不到新版本的commit id,

    可以使用git reflog,它记录每一次命令:

    $ git reflog

    append GPL的commit id是79690e5,现在,就又可以恢复到新版本了

    $ git reset --hard 79690e
    $ cat readme.txt

    小结:

    HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id

    穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本

    要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本

    五、工作区和暂存区

    从前面学习的内容可知,把文件往Git版本库里添加的时候,是分两步执行的:

    第一步:用git add把文件添加进去,实际上就是把文件修改添加到暂存区;

    第二步:用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。

    因为创建Git版本库时,Git自动为我们创建了唯一一个master分支,所以,现在,git commit就是往master分支上提交更改

    可以简单理解为,需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改

    Git管理的文件分为:工作区,版本库,版本库又分为暂存区stage和暂存区分支master(仓库)
    工作区>>>>暂存区>>>>仓库
    
    git add把文件从工作区>>>>暂存区,git commit把文件从暂存区>>>>仓库,
    git diff查看工作区和暂存区差异,
    git diff --cached查看暂存区和仓库差异,
    git diff HEAD 查看工作区和仓库的差异,
    git add的反向命令git checkout,撤销工作区修改,即把暂存区最新版本转移到工作区,
    git commit的反向命令git reset HEAD,就是把仓库最新版本转移到暂存区。
    git status就是单纯看工作区情况

    1. 先对readme.txt修改,再添加LICENSE文件

    2. 用git status查看状态,并添加readme.txt和LICENSE

    Git显示readme.txt被修改了,而LICENSE还从来没有被添加过,所以它的状态是Untracked

    现在,使用git add,把readme.txt和LICENSE都添加后,用git status再查看一下:

    所以,git add命令实际上就是把要提交的所有修改放到暂存区(Stage),然后,执行git commit就可以一次性把暂存区的所有修改提交到分支

    一旦提交后,如果又没有对工作区做任何修改,那么工作区就是“干净”的

    ------

    又到了2020年,今天是七夕节,天气很好。节日快乐~!(◕‿◕✿)

  • 相关阅读:
    大型网站架构
    Swift 2.x 升为 swift 3后语法不兼容问题适配
    Redis开发
    你必须知道的Dockerfile
    JAVA知识点汇总
    JAVA知识点汇总
    nginx location配置详细解释
    python3 urllib.request.Request的用法
    拉勾网python开发要求爬虫
    爬虫工程师是干什么的?你真的知道了吗?
  • 原文地址:https://www.cnblogs.com/littlemonsterksn/p/13562632.html
Copyright © 2011-2022 走看看