精华内容
下载资源
问答
  • Git入门指南八:Git撤消操作

    万次阅读 2014-02-28 18:55:41
    Git撤消操作 12.1 修改最后一次提交 git commit --amend 1.新建一个文件 2.提交一个之前的更改 3.跟踪这个文件 4.跟前一次一起提交 提示你是否重新编辑提交说明,如果不编辑退出后还是跟之前一样提交 ...

    十二. Git撤消操作

    12.1 修改最后一次提交 git commit --amend

    1.新建一个文件 2.提交一个之前的更改

    3.跟踪这个文件 4.跟前一次一起提交

    提示你是否重新编辑提交说明,如果不编辑退出后还是跟之前一样提交

    commit 成功

    或 git commit -m “” 可以直接提交

    12.2 撤消已暂存的文件 git reset HEAD

    #新建两个文件
    bixiaopeng@bixiaopengtekiMacBook-Pro wirelessqa$ touch 1txt
    bixiaopeng@bixiaopengtekiMacBook-Pro wirelessqa$ touch 2txt
    #全部暂存
    bixiaopeng@bixiaopengtekiMacBook-Pro wirelessqa$ git add -A
    #查看文件状态
    bixiaopeng@bixiaopengtekiMacBook-Pro wirelessqa$ git status
    # On branch master
    # Your branch is ahead of 'origin/master' by 1 commit.
    #   (use "git push" to publish your local commits)
    #
    # Changes to be committed:
    #   (use "git reset HEAD <file>..." to unstage)
    #
    #     new file:   1txt
    #     new file:   2txt
    # 
    
    
    #取消暂存 1txt
    bixiaopeng@bixiaopengtekiMacBook-Pro wirelessqa$ git reset HEAD 1txt
    #再次查看文件状态,1txt 已经被取消啦
    
    bixiaopeng@bixiaopengtekiMacBook-Pro wirelessqa$ git status
    # On branch master
    # Your branch is ahead of 'origin/master' by 1 commit.
    #   (use "git push" to publish your local commits)
    #
    # Changes to be committed:
    #   (use "git reset HEAD <file>..." to unstage)
    #
    #     new file:   2txt
    #
    # Untracked files:
    #   (use "git add <file>..." to include in what will be committed)
    #
    #     1txt 
    
    
    

    12.3 撤消对文件的修改 git checkout -- <file>

    bixiaopeng@bixiaopengtekiMacBook-Pro wirelessqa$ ls
    README          TEST            android-package ios-package     testamend
    #修改文件testmend
    bixiaopeng@bixiaopengtekiMacBook-Pro wirelessqa$ vim testamend
    bixiaopeng@bixiaopengtekiMacBook-Pro wirelessqa$ git status
    # On branch master
    # Your branch is ahead of 'origin/master' by 1 commit.
    #   (use "git push" to publish your local commits)
    #
    # Changes not staged for commit:
    #   (use "git add <file>..." to update what will be committed)
    #   (use "git checkout -- <file>..." to discard changes in working directory)
    #
    #     modified:   testamend
    #
    no changes added to commit (use "git add" and/or "git commit -a”)
    #撤消文件的修改
    bixiaopeng@bixiaopengtekiMacBook-Pro wirelessqa$ git checkout -- testamend
    bixiaopeng@bixiaopengtekiMacBook-Pro wirelessqa$ git status
    # On branch master
    # Your branch is ahead of 'origin/master' by 1 commit.
    #   (use "git push" to publish your local commits)
    #
    nothing to commit, working directory clean 
    

    12.4 Git撤消commit

    1. git log查看日志,找到需要回退的那次commit的 哈希值

    2. git reset --hard commit_id

    12.5 Git版本回退

    #查看log
    bixiaopeng@bixiaopengtekiMacBook-Pro wirelessqa$ git log
    commit 047cd2d2f6bd1ecdcdb4854b728300aeaa314b80
    Author: 小朋 <xiaopeng.bxp@****.com>
    Date:   Thu Jan 2 22:26:50 2014 +0800
    
    
        1test
    
    
    commit fa7fd8d49f3789d39aa3cc52cd81e09e6d061719
    Author: 小朋 <xiaopeng.bxp@****.com>
    Date:   Tue Dec 31 13:29:45 2013 +0800
    
    
        delete test2
    
    
    commit 746f92258e2bc65c46f77f37315f577091192885
    Author: 小朋 <xiaopeng.bxp@****.com>
    Date:   Tue Dec 31 13:22:07 2013 +0800
    
    
        test git commit -a 
    
    …..
    
    

    HEAD是指向最新的提交,上一次提交是HEAD^,上上次是HEAD^^,也可以写成HEAD~2 ,依次类推

    #放弃本地所有修改,回退到上一个版本
    bixiaopeng@bixiaopengtekiMacBook-Pro wirelessqa$ git reset --hard HEAD^
    HEAD is now at fa7fd8d delete test2
    

    注: --hard 表示放弃所有本地改动

    #再次查看log
    bixiaopeng@bixiaopengtekiMacBook-Pro wirelessqa$ git log
    commit fa7fd8d49f3789d39aa3cc52cd81e09e6d061719
    Author: 小朋 <xiaopeng.bxp@****.com>
    Date:   Tue Dec 31 13:29:45 2013 +0800
    
    
        delete test2
    
    
    commit 746f92258e2bc65c46f77f37315f577091192885
    Author: 小朋 <xiaopeng.bxp@****.com>
    Date:   Tue Dec 31 13:22:07 2013 +0800
    
    
        test git commit -a
    
    
    commit e301c4e185b0937d1ce9484ea86ab401e95c976c
    Author: 小朋 <xiaopeng.bxp@****.com>
    Date:   Tue Dec 31 13:14:42 2013 +0800
    
    
        just test 
    
    ………..
    
    

    回退到指定的版本 git reset --hard <哈希值>

    bixiaopeng@bixiaopengtekiMacBook-Pro wirelessqa$ git reset --hard 746f92258e2bc65c46f77f37315f577091192885
    HEAD is now at 746f922 test git commit -a 
    

    12.6 撤消未跟踪文件 git clean -dxf

    「举个例子」

    清除所有未跟踪文件,包括纳入ignored的文件。如果要保留ignored的文件修改,使用参数-df

    #清除所有未跟踪文件,包括纳入ignored的文件
    bixiaopeng@bixiaopeng-To-be-filled-by-O-E-M:~/workspace2/spark$ git clean -dxf
    正删除 .idea/
    正删除 .package.sh.swp
    正删除 assets/sparklog/
    正删除 backup-config/AndroidManifest.xml
    正删除 backup-config/channel_config.xml
    正删除 backup-res/assets/
    正删除 backup-res/res/
    正删除 debug
    正删除 package/spark_2.4_L95_91zhuomian.apk
    正删除 res/values/channel_config.xmlg
    正删除 target/
    正删除 xiamimusic.iml
    #再查看一下未跟踪的文件已经被撤消了
    bixiaopeng@bixiaopeng-To-be-filled-by-O-E-M:~/workspace2/spark$ git status
    # 位于分支 test
    # 尚未暂存以备提交的变更:
    # (使用 "git add <file>..." 更新要提交的内容)
    # (使用 "git checkout -- <file>..." 丢弃工作区的改动)
    #
    # 修改: pom.xml
    #
    修改尚未加入提交(使用 "git add" 和/或 "git commit -a")`
    

    订阅

    微信搜索“毕小烦”或者扫描下面的二维码,即可订阅我的文章。

    image.png

    如果文章对你有帮助,请随手点个赞吧!

    (完)

     
    展开全文
  • vim 的撤消和取消撤消

    2015-09-29 20:57:00
    撤消和取消撤消 小写u:撤消 <------> Ctrl+r :取消撤消 转载于:https://www.cnblogs.com/predisw/p/4847281.html
    • 撤消和取消撤消
      小写u:撤消 <------> Ctrl+r :取消撤消

    转载于:https://www.cnblogs.com/predisw/p/4847281.html

    展开全文
  • #VisualUIEditor项目讲解之撤消撤消详解 撤消撤消...

    #VisualUIEditor项目讲解之撤消反撤消详解 撤消反撤消在UI编辑器里面必备的功能,它可以帮助我们在编辑过程中,无需害怕误操作,助您更好的使用编辑器

    #在项目中使用 当您在项目中错误的移动位置,或者设置了错误的属性,这时候您可以用CTRL+Z来撤消刚才您进行的修改 当您在项目中撤消了刚才的操作,又想快速的回到刚才的状态,这时候您可以使用CTRL+R反撤消功能,来进行反撤消

    #源码讲解 ##源码路径 项目的实现源码,可参考renderUndo

    ##源码详解 每个Scene实例化的时候都会创建一个UndoObj,UndoObj里面是一层UndoList的浅封装,差别是在Undo和Redo的时候通常编辑器有节点发生变更

    "ui:scene_change"(event, message) {
        let runScene = this.$.scene.getRunScene();
        if(!runScene._undo)
            runScene._undo =  new UndoObj();
    }
    

    UndoList维持着场景变更的记录,UndoList的构造函数如下

    class UndoList extends EventEmitter {
      constructor (type) {
        super()
        //是否变化时发送事件的变化
        this._silent = false
        //分为local和global类型, local类型事件变化只会通知本地, global则会通常整个编辑器
        this._type = type
    
        //当前的命令列表
        this._curGroup = new CommandGroup()
        //操作过程的命令列表
        this._groups = []
        //记录当前的位置信息
        this._position = -1
        //上一次保存时的位置信息
        this._savePosition = -1
      }
    }
    

    当有新的操作到达时, 比如节点移动位置发生变更, 这时候则会调用函数

    add (cmd) {
        this._clearRedo()
        if (this._curGroup.isCanCombine(cmd)) {
            this._curGroup.combineCommand(cmd)
        } else {
            this.commit()
            this._curGroup.add(cmd)
        }
        this._changed('add-command')
    }
    
    

    因为整个撤消反撤消操作是单线的, 所以当有新的操作, 之前保存的redo操作变成无意义, 这时候会先清除redo列表, 即当前位置后命令列表 这时候我们会判断该命令是否能够合并, 如果能合并, 我们会优先尝试合并

      //CommandGroup的函数
      isCanCombine (other) {
        if (this._commands.length == 0) {
          return true
        }
        for ( let i = 0; i < this._commands.length; ++i) {
          if (this._commands[i].isCanCombine(other)) {
            return true
          }
        }
        if (this._time && Math.abs(this._time - other.info.time) < 1000) {
          return true
        }
        return false
      }
    
      //Command的函数
      isCanCombine (other) {
        if (!this.info || !other.info) {
          return false
        }
    
        if (this.info.op != other.info.op) {
          return false
        }
    
        if (this.info.uuid != other.info.uuid) {
          return false
        }
    
        if (this.info.op == 'prop' && (this.info.prop != other.info.prop)) {
          return false
        }
    
        if (Math.abs(this.info.time - other.info.time) >= 1000) {
          return false
        }
        return true
      }
    

    在CommandGroup中, 我们会遍历所有的Command,看能否进行合并或者最后一条Command的时间距离现在的时间太短,我们则认为能够合并 在Command中,同一种操作类型,同一个节点,同一个属性操作,时间在一定的时间内方可认为能合并 如果判断能合并,则进行合并并更新属性值

    ###为什么如此设计?

    因为整个撤消系统中,都是假定对其它系统一无所知的,而其它系统除了有限的Add接口,并没有暴露其它的接口信息 下面列举两种情景

    • 当在编辑器中,拖动某个节点移动的时候,每隔350ms会触发一次mousemove事件,这时候节点属性会频繁更改,而我们又认为这是一次操作,则我们应当在移动完成之后按一次撤消应该回到之前的状态,而不应该是移动过程中的任何状态,这时候用到同属性操作,在一定时间内合并操作
    • 当在编辑器中,一次拖动或者更改多个节点的属性,这时候预期的撤消应该为这次修改的所有属性同时回到变更之前的状态,而不应该是一个个节点的属性变更,所以这时候会合并所有的操作,当成一个组别

    当判断不能合并的时候,则会新起一条CommandGroup来记录新的Command,并更新位置信息

    撤消Undo

      undo () {
        // check if we have un-commit group
        if (this._curGroup.canCommit()) {
          this._curGroup.undo()
          this._changed('undo-cache')
          this._groups.push(this._curGroup)
          this._curGroup = new CommandGroup()
          return true
        }
    
        // check if can undo
        if (this._position < 0) {
          return false
        }
    
        let group = this._groups[this._position]
        group.undo()
        this._position--
        this._changed('undo')
        return true
      }
    

    撤消时,存在以下三种情况

    • 当前的Group可提交,即当前Group记录着一些操作信息,并且我们没有提交操作,这时直接对当前的Group执行Undo,并更新列表信息
    • 无可撤消的内容,即位置信息小于0
    • 可撤消,获取当前位置的Group进行撤消,并更新位置信息
      //Command undo
      undo () {
        let node = cocosGetItemByUUID(this.info.scene, this.info.uuid)
        if (this.info.op == 'prop') {
          if (!node) {
            return false
          }
          if (this.info.doPropChange) {
            this.info.doPropChange(node, this.info.prop, this.info.oldValue)
          } else {
            NodePropChange(node, this.info.prop, this.info.oldValue)
          }
          return true
        }
        console.warn('Please implement undo function in your command')
      }
    

    每个命令列表,首先会先尝试获取节点,然后根据节点的属性变更,进行新旧值的设置

    反撤消Redo

      redo () {
        // check if can redo
        if (this._position >= this._groups.length - 1) {
          return false
        }
    
        this._position++
        let group = this._groups[this._position]
        group.redo()
    
        this._changed('redo')
        return true
      }
    

    存在以下两种情况

    • 当前位置处理列表的最后一位,即无可反撤消的内容,此时不执行任何操作
    • 获取该反撤消的Group,对其执行redo操作
      //Command redo
      redo () {
        let node = cocosGetItemByUUID(this.info.scene, this.info.uuid)
        if (this.info.op == 'prop') {
          if (!node) {
            return false
          }
    
          if (this.info.doPropChange) {
            this.info.doPropChange(node, this.info.prop, this.info.newValue)
          } else {
            NodePropChange(node, this.info.prop, this.info.newValue)
          }
          return true
        }
        console.warn('Please implement redo function in your command')
      }
    

    每个命令列表,首先会先尝试获取节点,然后根据节点的属性变更,进行新旧值的设置

    在编辑器中添加Command

    function addNodeCommand (node, prop, oldValue, newValue, doPropChange) {
      let scene = getRootNode(node)
      if (!scene._undo) {
        return
      }
    
      tryAddCommand(scene._undo, newPropCommandChange(scene, node.uuid, prop, oldValue, newValue, doPropChange))
    }
    

    当属性发生变更的时候,我们会调用addNodeCommand值进行相应的设置,来添加撤消反撤消功能的支持,以下的参数说明

    • node即发生变化的节点
    • prop即发生变化的属性值,值为x,width这种
    • oldValue即当前node节点的值
    • newValue为node属性将要变更的值
    • doPropChange如果没有传该函数,则会调用NodePropChange进行修改,如果伴随属性变更,需调用相关函数,则可以传自定义函数,原型如下
    function(node, prop, newValue) {}
    

    其它未列出的信息,可参考源码的实现细节

    #其它信息 VisualUIEditor开发QQ群欢迎您的加入: 453224679

    转载于:https://my.oschina.net/tickbh/blog/754485

    展开全文
  • 临时事件撤除方法总结,包括中文事件撤消,开放域事件撤除,事件数据生成,跨语言事件撤消,小样本事件撤消,零样本事件撤消等类型,DMCNN,FramNet,DLRNN,DBRNN,GCN,DAG- GRU,JMEE,PLMEE等方法。 目录 定义 ...
  • 撤消Pro UndoPro是一个基于命令的撤消系统,已集成到Unity的默认系统中。 这使开发人员可以将操作用于其撤消/重做操作,而不必强迫用户进行新的撤消工作流程! 安装 根据您要使用UndoPro /分发工具的方式,您有几种...
  • vundo:视觉撤消树-源码

    2021-03-19 13:32:59
    vundo:视觉撤消
  • git撤消修改

    2017-10-13 16:23:07
    1. 撤消工作区修改  修改了内容,但是没有add到暂存区,使用命令撤消  git checkout -- filename 2. 撤消暂存区  修改了内容,并add到暂存区,使用命令撤消  git checkout HEAD filename 3. 撤消到某个...

    1. 撤消工作区修改

          修改了内容,但是没有add到暂存区,使用命令撤消

          git  checkout  --   filename

    2. 撤消暂存区

           修改了内容,并add到暂存区,使用命令撤消

           git checkout HEAD filename

    3. 撤消到某个commit_id

            git log 查看提交版本信息

           git reset --hard commit_id 

    展开全文
  • undone-blog:撤消博客
  • 撤消操作

    2014-02-19 10:27:29
    任何时候,你都有可能需要撤消刚才所做的某些操作。接下来,我们会介绍一些基本的撤消操作相关的命令。请注意,有些撤销操作是不可逆的,所以请务必谨慎小心,一旦失误,就有可能丢失部分工作成果。 修改最后一次...
  • Git笔记(7) 撤消操作

    万次阅读 2020-02-11 12:07:48
    重新提交,撤消对文件的修改,取消暂存文件
  • Git Book 中文版 - Git的撤消操作 - 重置, 签出 和 撤消 Git Book 中文版 - Git的撤消操作 - 重置, 签出 和 撤消Git的撤消操作 - 重置, 签出 和 撤消Git提供了多种修复你开发过程中的错误的方法. 方法的...
  • 这是一款整理发布的特许服务网点的建立和撤消管理规定,适用于公司企业营销人员学习参考特许服...该文档为特许服务网点的建立和撤消管理规定,是一份很不错的参考资料,具有较高参考价值,感兴趣的可以下载看看
  • Git 撤消操作

    2018-12-06 11:50:01
    .Git 撤消操作  原创:https://git-scm.com/book/zh/v1/Git-%E5%9F%BA%E7%A1%80-%E6%92%A4%E6%B6%88%E6%93%8D%E4%BD%9C 撤消操作 任何时候,你都有可能需要撤消刚才所做的某些操作。接下来,我们会介绍一些基本...
  • PyCharm撤消/恢复

    2019-02-15 21:20:00
    PyCharm在撤消/重做的每个步骤之前移动插入符号,然后执行撤消/重做操作。 要撤消操作,请执行以下操作之一: 在主菜单上,选择Edit | Undo。 按Ctrl+Z。 要恢复操作,请执行以下操作之一: 在主菜单上,选择Edit | ...
  • 主要介绍了Android ViewPager撤消左右滑动切换功能实现代码,需要的朋友可以参考下
  • 建设工程合同管理之要约的撤回和撤消怎么写呢,小编为大家带来了一份最新建设工程合同管理之要约的撤回和...该文档为建设工程合同管理之要约的撤回和撤消,是一份很不错的参考资料,具有较高参考价值,感兴趣的可以...
  • 可逆是撤消数据结构的Java库。 关于 通过存储每个原子动作的撤消信息,可逆提供了可撤消的数据结构,例如java.util.List。 因此,它在单个数据结构接口后抽象了此撤消操作,从而允许与现有代码库进行集成,而影响...
  • 易语言利用栈实现高级表格的的撤消和重做源码,利用栈实现高级表格的的撤消和重做
  • 实现撤消和重做功能的React Hooks
  • Git的撤消操作 - 重置, 签出 和 撤消 Git提供了多种修复你开发过程中的错误的方法. 方法的选择取决于你的情况: 包含有错误的文件是否提交了(commited); 如果你把它已经提交了, 那么你是否把有错误的提交已与其它人...
  • Git 基础 - 撤消操作

    2021-02-10 01:18:32
    在任何一个阶段,你都有可能想要撤消某些操作。 这里,我们将会学习几个撤消你所做修改的基本工具。 注意,有些撤消操作是不可逆的,这是在使用 Git 的过程中,会因为操作失误而导致之前的工作丢失的少有的几个地方...
  • 论文研究-PKI中CRL撤消延迟的研究.pdf, 首先建立了使用 CRL发布证书撤消信息的数学模型 .在对模型进行分析得基础上 ,对撤消延迟进行了分析 ,得到了撤消延迟的表达式并...
  • 支持为协作编辑系统选择性撤消按字符串操作
  • 如果您只是运行了一个git命令,那么该程序将撤消它,告诉您如何撤消它,或者告诉您无法撤消。 基于一个笑话,我不久前发布了。 例子 要求撤消建议。 git init gitjk This created a .git folder in the current ...
  • PyCharm中撤消/恢复

    千次阅读 2019-08-09 15:47:55
    撤消操作: 在主菜单上,选择Edit | Undo 或 按Ctrl+Z 恢复操作: 在主菜单上,选择Edit | Redo 或 按Ctrl+Shift+Z
  • 在nano中撤消功能

    2020-09-04 22:54:16
    如何在编辑文本时撤消操作? 例如:我输入了一些文字,然后改变了主意。现在我想返回到之前的状态。怎么样? 最佳解决办法 从2014年7月开始使用nano version 2.3.5,撤销/重做成为标准: Alt-U或Option-U – 撤消...
  • 支持多步撤消/重做的VB控件实例,监测系统剪切板,实现可连续的撤消功能,对此控件不熟悉的朋友,可下载参考这个代码。
  • 重做:提供具有静态分派的高级撤消重做功能

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,039
精华内容 2,415
关键字:

撤消