zoukankan      html  css  js  c++  java
  • git 基本操作----git reset、log

    我们可以用 rest来滚动git版本。使用log来查看本地仓库的版本

    $ git log

     会给出对此仓库的所有操作。如果日志比较多,就无法显示完全,linux 翻页的常规操作:空格:下一页,p 前一页,q 退出

    我们可以美化一下

    git log --pretty=oneline

     则会在一行中打印出日志。还可以更简单一点:

    git log --oneline

     还有一个常用的,查看所有日志

    git reflog

    我们可以使用reset设置当前的版本,以删除文件找回为例。

    我们新建一个c.txt,并把它添加到仓库。

    touch c.txt
    
    git add c.txt
    
    git commit -m "add c.txt"

    #使用reflog查看
    git reflog

    然后我们删除 c.txt.并且提交到本地仓库。

    rm c.txt
    
    git commit -am "del c.txt"

    我们使用 git reset --hard (指针位置) 就可以回滚。

    git reset --hard bb9181d

    这样我们删掉的c.txt就找回了。

    我们注意到有个参数

    --hard  :  同时修改  工作区  缓存区  本地仓库的文件内容

    --mixed:  同时修改  缓存区  本地仓库的文件内容

    --soft:     只修改本地仓库的文件内容

    此外,如果我们有修改提交到缓存区(add),但是还没有提交到本地仓库(commit).我们可以直接reset,清空缓存区的内容

    git reset HEAD

     如上图示,我们删掉了c.txt,并且add到缓存区,还没有commit到本地仓库。则。可以使用  git reset HEAD ,清空缓存区。

    还可以 指定文件名,清空某个文件的缓存。

    例如:

    我们先改动文件 README 文件,内容如下:

    # Runoob Git 测试
    # 菜鸟教程 
     

    hello.php 文件修改为:

    <?php
    echo '菜鸟教程:www.runoob.com';
    echo '菜鸟教程:www.runoob.com';
    echo '菜鸟教程:www.runoob.com';
    ?>

    现在两个文件修改后,都提交到了缓存区,我们现在要取消其中一个的缓存,操作如下:

    $ git status -s
     M README
     M hello.php
    $ git add .
    $ git status -s
    M  README
    M  hello.php
    $ git reset HEAD hello.php 
    Unstaged changes after reset:
    M    hello.php
    $ git status -s
    M  README
     M hello.php
     

    现在你执行 git commit,只会将 README 文件的改动提交,而 hello.php 是没有的。

    $ git commit -m '修改'
    [master f50cfda] 修改
     1 file changed, 1 insertion(+)
    $ git status -s
     M hello.php

    可以看到 hello.php 文件的修改并未提交。

    这时我们可以使用以下命令将 hello.php 的修改提交:

    $ git commit -am '修改 hello.php 文件'
    [master 760f74d] 修改 hello.php 文件
     1 file changed, 1 insertion(+)
    $ git status
    On branch master
    nothing to commit, working directory clean
     

    简而言之,执行 git reset HEAD 以取消之前 git add 添加,但不希望包含在下一提交快照中的缓存。

  • 相关阅读:
    CentOS7配置Tomcat8开机自动启动
    StackExchange.Redis 异步超时解决方案
    同一个tomcat部署多个项目导致启动失败
    吐血记录微信小程序授权获取Unionid及linux下使用bouncycastle解密用户数据 遇到的坑
    CentOS7设置ssh服务以及端口修改
    linux CentOS7安装与配置nginx1.18.0 并设置开机启动
    C语言函数指针用法
    Javascript优点和缺点
    VIM 单词大小写转换
    python base64编码实现
  • 原文地址:https://www.cnblogs.com/superxuezhazha/p/12988186.html
Copyright © 2011-2022 走看看