精华内容
下载资源
问答
  • 在利用github实现多人合作程序开发的过程中,我们有时会出现错误提交的情况,此时我们希望能撤销提交操作,让程序回到提交前的样子,本文总结了两种解决方法:回退(reset)、反做(revert)。 二、背景...

    2019/7/27 修改更新

    一、问题描述

    在利用github实现多人合作程序开发的过程中,我们有时会出现错误提交的情况,此时我们希望能撤销提交操作,让程序回到提交前的样子,本文总结了两种解决方法:回退(reset)、反做(revert)。

    二、背景知识

    git的版本管理,及HEAD的理解

    使用git的每次提交,Git都会自动把它们串成一条时间线,这条时间线就是一个分支。如果没有新建分支,那么只有一条时间线,即只有一个分支,在Git里,这个分支叫主分支,即master分支。有一个HEAD指针指向当前分支(只有一个分支的情况下会指向master,而master是指向最新提交)。每个版本都会有自己的版本信息,如特有的版本号、版本名等。如下图,假设只有一个分支:
    这里写图片描述

    三、解决方法

    方法一:git reset

    原理: git reset的作用是修改HEAD的位置,即将HEAD指向的位置改变为之前存在的某个版本,如下图所示,假设我们要回退到版本一:
    这里写图片描述
    适用场景: 如果想恢复到之前某个提交的版本,且那个版本之后提交的版本我们都不要了,就可以用这种方法。

    具体操作:

    1. 查看版本号:
    可以使用命令“git log”查看:
    在这里插入图片描述
    也可以在github网站上查看:
    这里写图片描述
    2. 使用“git reset --hard 目标版本号”命令将版本回退:
    这里写图片描述
    再用“git log”查看版本信息,此时本地的HEAD已经指向之前的版本:
    在这里插入图片描述
    3. 使用“git push -f”提交更改:
    此时如果用“git push”会报错,因为我们本地库HEAD指向的版本比远程库的要旧:
    这里写图片描述
    所以我们要用“git push -f”强制推上去,就可以了:
    这里写图片描述
    在github图形化界面上看,远程库的HEAD也已经指向目标版本:
    这里写图片描述

    回退成功!

    方法二:git revert

    原理: git revert是用于“反做”某一个版本,以达到撤销该版本的修改的目的。比如,我们commit了三个版本(版本一、版本二、 版本三),突然发现版本二不行(如:有bug),想要撤销版本二,但又不想影响撤销版本三的提交,就可以用 git revert 命令来反做版本二,生成新的版本四,这个版本四里会保留版本三的东西,但撤销了版本二的东西。如下图所示:
    这里写图片描述
    适用场景: 如果我们想撤销之前的某一版本,但是又想保留该目标版本后面的版本,记录下这整个版本变动流程,就可以用这种方法。

    具体操作:

    举个例子,现在库里面有三个文件:READ.md、text.txt、text2.txt。
    在这里插入图片描述
    1. 查看版本号:
    可以通过命令行查看(输入git log):
    如图,最近的两个版本分别叫:“add text.txt”(即新增了文件text.txt)、“add text2.txt”(新增了文件text2.txt)。这个时候我们不需要text.txt这个文件了,那就是说不想要“add text.txt”那个版本的操作,那可以通过反做“add text.txt”这个版本来实现。
    在这里插入图片描述
    也可以通过github网站图形化界面查看版本号:
    在这里插入图片描述
    2.使用“git revert -n 版本号”反做,并使用“git commit -m 版本名”提交:
    (1)反做,使用“git revert -n 版本号”命令。如下命令,我们反做版本号为8b89621的版本:

    git revert -n 8b89621019c9adc6fc4d242cd41daeb13aeb9861
    

    注意: 这里可能会出现冲突,那么需要手动修改冲突的文件。而且要git add 文件名。
    (2)提交,使用“git commit -m 版本名”,如:

    git commit -m "revert add text.txt" 
    

    此时可以用“git log”查看本地的版本信息,可见多生成了一个新的版本,该版本反做了“add text.txt”版本,但是保留了“add text2.txt”版本:
    在这里插入图片描述
    3.使用“git push”推上远程库:

    git push
    

    查看github上显示的远程库版本信息:
    在这里插入图片描述
    此时查看仓库的文件,剩下两个:READ.md、text2.txt
    在这里插入图片描述

    反做成功!

    展开全文
  • git reset --hard 和 git reset --soft区别

    万次阅读 多人点赞 2017-03-12 22:50:52
    有时候,进行了错误的提交,但是还没有push到远程分支,想要撤销本次提交,可以使用git reset –-soft/hard命令。 1、二者区别: git reset –-soft:回退到某个版本,只回退了commit的信息,不会恢复到index file...

    有时候,进行了错误的提交,但是还没有push到远程分支,想要撤销本次提交,可以使用git reset –-soft/hard命令。
    1、二者区别:

    git reset –-soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可;
    git reset -–hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容,撤销的commit中所包含的更改被冲掉;

    2、具体用法如下:

    使用git log命令查看本地的所有提交

    现在想要撤销最后一次提交,即上图中“OTMS-25838: rollback the modification in OrderDto”这个commit;
    (1)git reset --hard使用示例:

     

    使用命令git reset --hard 1c38838ad39b396e271cb10e2146a1d673b4a2b9撤回制定版本号(不包括该提交)之前的所有提交。

    注意:上述命令执行成功之后,会彻底返回到回退前的版本状态,新发生的变更将会丢失。对于部分发生了变更,但是变更部分的文件夹存在未提交的文件可能导致目录非空而删除失败,此时需要自行处置。

     

    (2)git reset –-soft使用示例:

    初始状态,可见当前分支最后一个提交是debug the initialization page

    现在要撤销该commit,但是又不能撤销该提交包含的更改,使用git reset --soft,执行结果为

     

    可见commit取消了,代码更改并没有取消。

    展开全文
  • 安装完mysql 之后,登陆... mysql> show databases; ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement. mysql> use mysql; ERROR 182...

    安装完mysql 之后,登陆以后,不管运行任何命令,总是提示这个

    mysql> show databases;
    ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
    mysql> use mysql;
    ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
    

    解决方式如下:

    MySQL版本5.7.6版本以前用户可以使用如下命令:

    mysql> SET PASSWORD = PASSWORD('Xiaoming250'); 

    MySQL版本5.7.6版本开始的用户可以使用如下命令:

    mysql> ALTER USER USER() IDENTIFIED BY 'Xiaoming250';

    如果不清楚自己是什么版本,可以将两条都尝试一下。

    对于出现此种情况,感兴趣的同学可以接着往下看,

    原因分析:

    MySQL版本5.6.6版本起,添加了password_expired功能,它允许设置用户的过期时间。这个特性已经添加到mysql.user数据表,但是它的默认值是”N”,可以使用ALTER USER语句来修改这个值。

    输入以下命令,将账号密码强制到期:

    mysql> ALTER USER 'xiaoming'@'localhost' PASSWORD EXPIRE;

    此时,用户可以登录到MYSQL服务器,但是在用户为设置新密码之前,不能运行任何命令,就会得到上图的报错,修改密码即可正常运行账户权限内的所有命令。由于此版本密码过期天数无法通过命令来实现,所以DBA可以通过cron定时器任务来设置MySQL用户的密码过期时间。

    MySQL 5.7.4版开始,用户的密码过期时间这个特性得以改进,可以通过一个全局变量default_password_lifetime来设置密码过期的策略,此全局变量可以设置一个全局的自动密码过期策略。可以在MySQL的my.cnf配置文件中设置一个默认值,这会使得所有MySQL用户的密码过期时间都为120天,MySQL会从启动时开始计算时间。my.cnf配置如下:

    [mysqld]
    default_password_lifetime=120

    如果要设置密码永不过期,my.cnf配置如下:

    [mysqld]
    default_password_lifetime=0

    如果要为每个具体的用户账户设置单独的特定值,可以使用以下命令完成(注意:此命令会覆盖全局策略),单位是“天”,命令如下:

    ALTER USER ‘xiaoming’@‘localhost' PASSWORD EXPIRE INTERVAL 250 DAY;

    如果让用户恢复默认策略,命令如下:

    ALTER USER 'xiaoming'@'localhost' PASSWORD EXPIRE DEFAULT;

    个别使用者为了后期麻烦,会将密码过期功能禁用,命令如下:

    ALTER USER 'testuser'@'localhost' PASSWORD EXPIRE NEVER;

    如想进一步学习请参考guan官网:https://dev.mysql.com/doc/refman/5.7/en/password-management.html

    展开全文
  • PCIe总线规定了两个复位方式:conventional Reset和FLR (FunctionLevel Reset),而Conventional Reset由进一步分为两大类:Fundamental Reset和Non-Fundamental Reset。Fundamental Reset方式包括Cold和Warm ...

     PCIe总线规定了两个复位方式:conventional Reset和FLR (FunctionLevel Reset),而Conventional Reset由进一步分为两大类:Fundamental Reset和Non-Fundamental Reset。Fundamental Reset方式包括Cold和Warm Reset方式,可以将PCIe将设备中的绝大多数内部寄存器和内部状态都恢复成初始值;而Non-FundamentalReset方式为Hot Reset方式。

    1.1   传统复位方式(conventional)

    传统的复位方式分为Cold、Warm和Hot Reset。PCIe设备可以根据当前的设备的运行状态选择合适的复位方式,PCIe总线提供多种复位方式的主要原因是减小PCIe设备的复位延时。其中传统复位方式的延时大于FLR方式。使用传统复位方式时,Cold  Reset使用的时间最长,而Hot  Reset使用的时间最短。

    1.2   Cold Reset

    当一个PCIe设备的Vcc电源上电后,处理器系统将置该设备的PERST#信号为有效,此时将引发PCIe设备的复位方式,这种方式属于Fundamental Reset。PCIe设备进行Clod Reset时,所有使用Vcc进行供电的寄存器和PCIe端口逻辑将无条件进入初始状态。但是使用这种方式依然无法复用使用Vaux(备用电源)供电的寄存器和逻辑,这些寄存器和逻辑只能在处理器完全掉电时彻底复位。

    1.3   Warm Reset

    在PCIe的设备完成上电后,也可能重新进行Fundamental Reset,这种复位方式也被称为Warm Reset。PCIe并没有定义WarmReset的具体实现方式。

    1.4   Hot Reset

    当PCIe设备出现某种异常时,可以使用软件手段对该设备进行复位。如系统软件将Bridge Control Register 的Secondary Bus Reset位置为1,该桥片将secondary总线上的PCI/PCIe设备进行Hot Reset。CPIe总线将通过TS1和TS2序列对下游设备进行Hot Reset。

    在TS1和TS2序列中包含一个Hot Reset位。当下游设备收到一个TS1和TS2序列,而且Hot Reset位为1时,下游设备将使用HotReset方式进行复位操作。

        HotReset方式并不属于FundamentalReset。PCIe设备进行Hot Reset方式时,也可以将PCIe设备的多数寄存器和状态恢复为初始值。

    同时,在PCIe总线中,如果需要对链路的Link Width进行改变时,也将会用到Hot Reset。具体的流程如下:

    1. Ensurethe Link is in the L0 LTSSM state

    2. Program the 6-bit “Link Mode Enable” field of the “Port LinkControl Register” on page 732. This isusedby the LTSSM in DETECT

    3. Programthe 9-bit “Predetermined Number of Lanes” field of the “Gen2 Control Register” on

    page 771. Thisindicates to the LTSSM, the number of lanes to check for exiting from L2.IDLE or

    POLLING.ACTIVE

    4. Trigger aHot Reset, by setting the Secondary Bus Reset bit in the RC Bridge ControlRegister (of the Type 1 PCI Configuration Space Header) to 1

    5. Wait for2 mS. The core’s LTSSM will transition from L0 -> RCVRY -> HOTRESET

    6. Clear theSecondary Bus Reset bit. The core’s LTSSM will transition from HOTRESET -> DETECT

    1.5   FLR(Function Level Reset)

          除了传统的复位方式之外,PCIe总线还提供了FLR方式。系统软件通过填写某些寄存器,如synosys 的PCIe的IP是可以PCIeExpress Capability 的Device Control Register的第16bit完成FLR。支持FLR方式的PCIe设备需要在其BAR空间中提供一个寄存器,当系统软件对该寄存器的Function LevelReset位写1时,PCIe设备将使用FLR方式复位PCIe设备的内部逻辑。FLR方式对PCIe设备是可选的。

           在一个大规模的并行处理系统中,系统软件使用分区的概念管理所以硬件资源,包括处理器资源和所以IO资源,这些IO资源中通常会包含PCIe设备。在这种处理器系统中,任务在指定的分区中运行,当这个任务执行完毕后,系统软件需要调整硬件资源的分区。此时受到影响的PCIe设备需要使用FLR方式复位内部的逻辑,以免造成对新的分区的资源污染,并保护之前任务的结果。

    当PCIe设备使用FLR方式进行复位时,有些与PCIe链路相关的状态和寄存器并不会被复位:

    Ø  Sticky Registers。与传统的复位方式相同,FLR方式不能复位这些寄存器,但是系统软件对部分Sticky Registers进行修改。当Vaux(备用电源)被移除后,这些寄存器中的保存的数据才会丢失。

    Ø  HwIint类型的寄存器。在PCIe设备中,有效配置寄存器的属性为HwIint,这些寄存器的值由芯片的配置引脚决定,后者上电复位后从EEPROM中获取。Cold和Warm Reset可以复位这些寄存器,然后从EEPROM中从新获取数据,但是使用FLR方式不能复位这些寄存器。

    Ø  此外,还有一些特殊的配置寄存器不能被FLR方式复位,如Max_Payload_Size、RCB和一些与电源管理、流量控制和链路控制直接相关的寄存器。

    Ø  FLR方式不会影响LTSSM状态机。

    以上内容大部分为王齐老师《PCI Express 体系结构导读》中摘录。


    本文转载:https://blog.csdn.net/yijingjijng/article/details/48246593


    展开全文
  • Nginx: 104: Connection reset by peer 错误

    万次阅读 2019-04-08 15:27:00
    最近Nginx反向代理遇到了“104: Connection reset by peer”错误,google了一下,这里记录一下。 1 错误原因:检查链接是否已经close。 upstream发送了RST,将连接重置。 errno = 104错误表明你在对一个对端...
  • css reset

    2019-10-19 19:26:11
    什么是 css reset 为什么需要css reset 怎么使用css reset 1. 什么是css reset css Reset 就是用来重置(复位)元素在不同核心浏览器下的默认值,尽量保证元素在不同浏览器下的同一“起跑线” 2. 为什么需要 css ...
  • java.io.IOException: Connection reset by peer

    万次阅读 热门讨论 2017-12-04 10:45:50
    java.io.IOException: Connection reset by peer at sun.nio.ch.FileDispatcherImpl.read0(Native Method) at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39) at sun.nio.ch.IOUtil.r...
  • RESET MASTER  删除所有index file 中记录的所有binlog 文件,将日志索引文件清空,创建一个新的日志文件,这个命令通常仅仅用于第一次用于搭建主从关系的时的主库。 注意reset master 不同于purge binary log...
  • form表单resetreset is not a function

    千次阅读 2018-12-07 16:52:44
    from 表单resetreset is not a function 今天遇到一个js 的bug 如下图所示: 一般form表单重置 js的方式是:document.getElementById(“form”).reset()。 jquery的方式是:则使用 $("#form&...
  • git reset

    千次阅读 2017-02-11 15:01:10
    git reset 重置reset命令(1):git reset –mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息(2):git reset –soft:回退到某个版本,只回退...
  • Git撤销&回滚操作(git reset 和 get revert)

    万次阅读 多人点赞 2018-11-15 22:11:48
    git的工作流 工作区:即自己当前分支所修改的代码,git add xx 之前的!不包括 git add xx 和 git commit xxx 之后的。 暂存区:已经 git add xxx 进去,且未 git commit xxx 的。 本地分支:已经git commit -m ...
  • CSS常用的reset文件:reset.css

    万次阅读 2019-05-17 14:44:04
    * Eric Meyer's Reset CSS v2.0 (http://meyerweb.com/eric/tools/css/reset/) * http://cssreset.com */ html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, ...
  • Connection reset

    千次阅读 2019-07-10 13:27:44
    Connection reset 在Android Studio中打开新的项目或引用在线jar时出现 问题解决 因为android studio无法下载外网的jar,可以用阿里代理的maven仓库,在build.gradle中进行修改。 apply from: "config.gradle" ...
  • reset slave删除master.info文件和relay-log.info 文件以及所有的relay log 文件并重新启用一个新的relaylog文件,但并不会清理存储于内存中的复制信息比如master host, master port, master user, or master ...
  • git reset --hard HEAD^ 回退到前3次提交之前,以此类推,回退到n次提交之前 git reset --hard HEAD~3 退到/进到 指定commit的sha码 git reset --hard dde8c25694f34acf8971f0782b1a676f39bf0a46 强推到...
  • Reset 报文

    2017-03-30 20:44:16
    TCP/IP 建立连线后如果非正常退出 会发送Reset 报文 比如直接Close 程式。TCP/IP 会自动发送一个Reset 报文 用以释放连接
  • RESET MASTER 删除所有index file 中记录的所有binlog 文件,将日志索引文件清空,创建一个新的日志文件,这个命令通常仅仅用于第一次用于搭建主从关系的时的主库, 注意  reset master 不同于purge binary ...
  • Reset Control

    2015-07-15 14:12:52
    Reset Control 1.Reset Introduction   Reset机制是BIOS中一个很基本的动作,很多部分的操作往往需要做一下Reset然后才能正常工作。Reset如影随形无处不在,哪个功能不正常就Reset一下呗(玩笑而已:)),...
  • css reset是一个为了去除浏览器自带样式的全局样式表,没有银弹,大家可以在此基础上进行个性化定制,在最后添加各个项目需要的全局样式。/* http://meyerweb.com/eric/tools/css/reset/ v2.0 | 20110126 License...
  • `git reset` 和 `git reset --hard`区别

    万次阅读 2019-07-16 22:40:20
    git reset 和 git reset --hard区别 先说知识点 有时候,进行了错误的提交,但是还没有push到远程分支,想要撤销本次提交,可以使用git reset –-soft/hard命令 缺省情况 git reset缺省为git reset --soft 二者...
  • Github Reset

    2016-11-23 14:02:17
    git reset [commit] # reset local to that commit git stash # save changes git push -f # force push to remote git stash pop # load changes git status # commit list has change to commit with changes ...
  • JedisConnectionException Connection Reset

    千次阅读 2017-09-24 22:31:44
    JedisConnectionException Connection Reset使用Jedis的subscribe进行消息订阅时有时会抛出JedisConnectionException:Connection Reset,查看redis-server控制台,发现有如下信息输出:subscribe scheduled to be ...
  • emmc 通过reset controller 来reset emmc host

    千次阅读 2017-04-18 09:15:35
    在driver/reset/hisilicon/Makefile obj-$(CONFIG_COMMON_RESET_HI6220) += hi6220_reset.o 可见要使用reset controller 必须定义CONFIG_COMMON_RESET_HI6220 在Hi6220_resetc中 static struct platform_driver ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 99,367
精华内容 39,746
关键字:

reset