• git的回滚与撤销【reset and revert】


    git的工作流程-- 3个区域

      工作区:我们可以看到的文件内容  在操作 git add 之前的!!

      缓存区:是不可见的   已经git add操作,还没git commit -m “”操作

      历史区:将缓存区中,临时存储的文件,生成历史版本   已经git commit -m

      基本工作流程:

        工作区编辑 ---> 存储缓存区 ---> 历史版本 ---> 上传github

             github ---> 下载工作区进行编辑

    代码回滚

      1、在工作区的代码

        git checkout --文件名  丢弃某个文件

        git checkout --.      丢弃全部

        对之前保存在缓存区里的代码不会有任何影响。对commit提交到本地分支的代码就更没影响了。如果你之前压根都没有缓存或commit,那就是回到你上次pull下来的样子了。

      2、git add到了缓存区,没有git commit -m

        git reset HEAD .

        git reset HEAD 文件夹名

        仅改变缓存区,并不改变工作区。

      3、git commit -m 到本地分支,没有git push 远端

        git log     查看提交的版本信息  版本号

        git reset --hard 版本号  回到想要的版本

        git reset --hard HEAD^  回到最新一次提交

        git reset HEAD^     此时代码保留,回到git add操作之前(表示需要重新add)

      4、git push 把修改提交到了远端仓库

        ①通过 git reset

          git log  查看版本信息  版本号

          git reset --hard 版本号

          git push origin HEAD --force      强制提交一次  之前错误的提交会删除

        ②git revert  用新的 commit 回滚之前的 commit

          git log  查看版本信息  版本号

          git revert 版本号    撤销指定的版本,撤销也会作为一次提交进行保存

        git revert 和git reset 区别

          git revert是用一次 新的commit 来回滚之前的commit,此次提交之前的commit都会被保留;

          git reset是 回到某次提交,提交及之前的commit都会被保留,但是此commit id之后的修改都会被删除

    撤销

      将“本地仓库”的代码还原操作叫做“撤销”!

      1、文件修改,没执行git add

        git checkout 文件名

        git checkout .

      2、同时对多个文件 git add,但想提交部分

        $ git add *

        $ git status

        $ git reset HEAD 文件名    取消缓存

      3、执行了 git add ,想撤回修改

        git reset HEAD 文件名     取消缓存

        git checkout 文件名      撤回修改

      4、行了多次git commit操作,想撤销到其中某次Commit

       git reset [--hard|soft|mixed|merge|keep] [commit|HEAD]

      

        

     
     
  • 相关阅读:
    让UILabel的文字顶部对齐
    常用的iOS开发或者优化的小工具
    AppStoreID--安装URL--应用更新URL--应用评分URL
    iOS 下载功能:断点下载(暂停和开始)(NSURLConnectionDataDelegate方法)
    iOS QLPreviewController(Quick Look)快速浏览jpg,PDF,world等
    如何不让UITableView滚动
    解析字典包含关键字比如ID,description等,MJExtension 框架 不能直接设置变量与其同名。
    今天犯了个小错误:_dataArray.count>1 和_dataArray.count>0搞混淆了
    获取当前的日期和时间-数码
    C/C++中的段错误(Segmentation fault)[转]
  • 原文地址:https://www.cnblogs.com/cyp926/p/13499580.html
Copyright © 2020-2023  润新知