Git

作者: 垃圾简书_吃枣药丸 | 来源:发表于2017-09-30 16:07 被阅读30次

    git init 初始化一个仓库
    git add . 将所有文件添加到git仓库(暂存区)
    git commit -m "说明" 提交到本地仓库(分支)

    git status查看仓库的状态
    git diff查看更改信息

    git log查看仓库日志
    git reflog 查看日志
    git reset --hard HEAD^^^ ^的个数相当于回退几个版本
    HEAD表示当前所处在的版本
    git reset --hard 版本号 跳转到指定的版本号

    Git的版本回退速度非常快,因为Git在内部有个指向当前版本的HEAD指针,当你回退版本的时候,Git仅仅是把HEAD从当前的指向改为指向你需要跳转到的版本

    图解

    图解

    工作区(Working Directory) git add 'fileA' git add 'fileB' / git add . 暂存区(stage )git commit -m '提交' 分支(now is master)

    git commit 只负责把暂存区的修改进行提交,所以如果文件被修改了但是没有进行git add操作将更改add到暂存区的话git commit是不会将这个更改同步到分支上的

    廖雪峰

    还原更改git checkout -- readme.txt命令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:
    一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
    一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
    总之,就是让这个文件回到最近一次git commit或git add时的状态。
    git checkout -- file命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令

    git checkout -- file命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令,我们在后面的分支管理中会再次遇到git checkout命令。
    原文上面的表述不够严谨,去掉 --
    使用 git checkout file 并不会变成切换分支,起到的效果仍然是,还原工作区的file文件内容。
    解答 -- 是什么意思,不妨先看它的前世今生。
    -- 的名称叫做double dash,是bash的内置命令,用来标记可选命令选项的结束。即在它后面的带 -- 的字符串,不被当做是一个命令选项。
    More precisely, a double dash (--) is used in bash built-in commands and many other commands to signify the end of command options, after which only positional parameters are accepted.
    举例:
    在 grep 命令中 -V 原本是一个可选的命令参数(options),打印出 grep 命令的版本。
    但结合--后,以下命令表示在 d1.txt 文件中查找 "-V" 字符串
    grep -- -V d1.txt
    Git 的一些命令中,借鉴了这种用法。使用 -- 去隔离开“树”与“路径”。
    例如,你想还原 一个文件 path/to/file.txt,在Git中使用如下命令
    git checkout path/to/file.txt
    但是天杀的居然有一个文件名字就叫做 "master"
    如果你套用上面的命令,想还原“master”文件
    git checkout master
    最终起的效果是变成切换到了master分支上。
    正确的做法是使用 --,这样它后面的字符串不会当做“树”,而认为是文件路径。
    git checkout -- master
    其实可以理解为:git checkout这个命令执行前会进行判断,判断顺序为:branch->path;

    用命令git reset HEAD file可以把暂存区的修改撤销掉(unstage),重新放回工作区
    git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本。

    相关文章

      网友评论

          本文标题:Git

          本文链接:https://www.haomeiwen.com/subject/rqtnextx.html