zoukankan      html  css  js  c++  java
  • git 学习笔记 —— 在不同的提交间进行切换和重置( git reset/reflog/tag 命令)

      记录一下关于 git 不同提交版本间切换的操作以及如何恢复至切换之前的版本。

      切换到之前提交的版本 —— git reset --hard

      笔者在使用 git 时,首先接触到了一个"黑魔法"命令 git reset --hard,通过该命令可以回退到 git 之前存在的提交。

      首先通过 git log 查看各个提交历史,可以看到各个提交版本的提交信息,包括其计算得到的 SHA-1 值。

        git log                      //查看存在的提交信息,包括其计算的 SHA-1 值,作者和简单描述

      在获得目标版本的信息后,可以通过 git reset --hard 命令回退到某次 git 的提交之中。

        git reset --hard 123456      //回退到 SHA-1 值开始为 123456 的提交版本,上述命令只需要对应提交的 SHA-1 值的前几位作为参数即可

      注意:此命令会直接执行,而不会提示用户进行本地修改的提交等操作,所以在命令执行之前请保证所有的修改均已被妥善处置。

      查看分支切换记录 —— git reflog

      当使用 git reset --hard 命令从提交版本 A 回退到某个提交版本 B 后,若进行一定的任务后又需要返回提交的 A 版本时,此时通过 git log 查看提交记录可知,此时仅存在提交版本 B 之前的提交记录,而 B 之后的提交记录都无法显示出来。  此时使用 git reset --hard 命令会缺少分支 A 的 SHA-1 值作为参数。此时可以通过 git reflog 命令查看提交切换的记录。

        git reflog            //查看版本的切换记录,从而找到切换之前的版本的 SHA-1 值

      通过 git reflog 命令可以看到不同提交版本之间的切换记录,其中存在有切换版本的7位 SHA-1 开始值的信息,用户可以通过这个值使用 git reset --hard 命令指定版本 A 从而回退到切换回版本 B 之前的版本 A.

      

      查看提交标签 —— git tag

      在查看某个大型项目的 git 记录时,可以发现其中的提交记录是十分多的,想要仅通过提交时的简短描述确定每次提交的信息是困难的。另一方面,某些重要的更新如版本与新版本之间应该用额外的信息进行标注。如笔者在查看 mpeg 的软件 TMC13 时,即看到有众多的提交记录,而不同的版本提交则使用 git tag 做了标注。如笔者想要获取版本 0.0 的代码,此时直接通过 git log 查看提交记录是十分麻烦的( 提交记录很多 ),但是笔者可以通过 git tag 查看已有的标签,并通过标签定位到笔者需要的提交版本,并通过 git show 显示对应 tag 的信息,进而回退到对应的版本。

        git tag              //直接使用 git tag 命令则显示已有标签

      用户可通过 git show 查看对应标签的信息,包括其对应的提交版本等信息。

        git show tag1          //显示 tag1 标签对应的信息

      用户添加标签的方式有若干种,既可以单纯仅添加标签,也可以为标签添加注释信息,或者对已经提交的版本追加标签。

        git tag tag1                          //为当前版本加入标签 tag1
        git tag -a tag2 -m 'tag message'      //在加入标签的同时为标签加入注释
        git tag -a tag3 1234567               //为提交的 SHA-1 值开始位为 1234567 的提交追加标签 tag3

      在命令中加入 -d 参数表示删除对应标签。

        git tag -d tagn                //删除标签 tagn 对应的标签

      默认情况下,标签并不会被推送到远端服务器,只有用户显式的进行推送时,标签才会被 push 到远端服务器进而被所有使用该远端仓库的人看到。

        git push origin tag12          //将标签 tag12 推送到 origin 对应的远端仓库
        git push origin --tags         //一次将所有的标签推送到 origin 对应的远端仓库

      Git 工具 - 重置揭密 ,git - git 操作的细节,解释了 HEAD、Index 和 working directory 的意义,并讨论了 git reset --hard 命令的风险

      Git 基础 - 打标签,git - 介绍 git tag 的操作方式

      git reset --hard 操作后的数据恢复,掘金 - 关于 git reset --hard 命令操作后数据恢复的方法

  • 相关阅读:
    jQuery.ajax() – jQuery API
    Crossdomain Ajax with CORS
    ajax How do I send a crossdomain POST request via JavaScript? Stack Overflow
    人多、房价贵、空气不好、交通不好、适合奋斗的人、陌生环境、没有亲人朋友、哥们儿你这是在用生命在北漂啊
    write less do more jquery slogan
    jQuery.ajax() – jQuery API
    在服务端Response一个XML
    软件版本控制(SVN/CVS)详解
    1721. Gray code[Special judge]
    cocos2dx下载旧版本小游戏修改注意点
  • 原文地址:https://www.cnblogs.com/yhjoker/p/11794696.html
Copyright © 2011-2022 走看看