当commit提交了错误代码或删除文件。想回退到git某些版本的几种情况。

  以下是在Mac系统的git演示。终端也是在Mac系统

  

commit到git本地,push提交到远程仓库后

   git 回退到指定版本:          


       打开终端,cd到你的项目目录

      执行以下命令


      git log          

      git reset --hard 0g12k3j

      git push -f
    解释:git reflog查看提交的历史记录,每次提交都有一个commit ID记录,实际上是SHA-1码
    解释:git reset 退回的命令,--hard 表示工作区的(我们所见所开发的目项目)同时恢复到指定
              提交的版本,若不加--hard 或者加上--soft,只是缓存区会变,我们项目里看不到退回的效果。
              中划线红色的commit ID替换成你的历史记录中的指定某个版本commit ID
     
      也可以直接用命令    git reset --hard HEAD~3         // 3代表回滚到最近3次提交回滚,改成1,就是上次的版本

       解释: git push -f   强制提交到远程版本,也就是说远程的版本也回滚到本地的





遇到的问题:

   若项目重新克隆已被错误提交的项目时,git log  没有记录或者记录为一条

  这是我项目的个人原因,由于项目太大,tag太多,当初项目克隆的时候容易失败。

所以快速下载只克隆了深度为1的项目,即克隆最近一次提交的项目导致没有log记录只为一条

改下克隆深度即可,比如10深度:


git clone -b publicFund-feature http://100.100.100.100/iOS/myIOS.git --depth 10





Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐