Git系列:常见场景问题处理

Git系列:常见场景问题处理

      • 版本代码如何快速回退?

本文小结Git使用过程中典型场景问题处理。

版本代码如何快速回退?

A:首先分为两种回退情况,本地回退和远端回退

  • 本地回退
    • 工作区内修改回退
    • 暂存区内修改回退
    • 本地版本库回退
  • 远端回退
    • 涉及到远端库的回退,Todo

本地工作区内修改回退

即还未进行add操作,此时可以用 git status ,查看本地修改文件,未add前显示红色,add后显示为绿色。采用指令抛弃现有文件或文件夹修改:git restore

本地暂存区内修改回退

即add后,还未进行commit时,回退add的操作,指令:git rm --cached

本地版本库回退

  • 指令:git reset --hard HEAD^,硬回退到上一版本
  • 指令:git reset --soft HEAD^,软回退到上一个版本
  • 指令:git reset --hard ,回到指定commit版本
    • 实例:git reset --hard 1094a1094a,commitId可以不必写全,只要足够区分版本就行
  • 细节说明:
    • 软回退和硬回退的区别:硬回退会将本地回退前版本内容删除后回退(同时撤销并删除之前本地工作区所有修改及提交内容),而软回退一下仅head指针后移,回退前的那个版本并没有删除。
    • N个^,表示往后回退N个版本,如HEAD^^上上一个版本
    • 往后回退大于3个版本时,采用HEAD~<数字>,比如HEAD~100,表示回退到前100个版本
    • commitid可以通过git reflog查看,以及查看当前版本回退记录

实战演示:本地版本回退实现,并下载指定分支指定版本?

  • 需求:如何实现拉取指定commit版本的代码,取走后并恢复到最新commit?
  • 实现:git 下载指定分支指定的commit版本
    • 第一步,克隆远端仓库并切换到相应分支: git clone [git-url] -b [branch-name]
    • 第二步,回退分支到指定commit版本: git reset --soft [commit-number]
    • 第三步,git reflog查看回滚前的commit id,利用git reset --soft强制回到最新版本
  • 示例
    • git clone ssh:xxxx -b dev
    • git reset --soft cmtid2
    • git reset --soft cmtidlatest

已push提交到远端仓库,但未merge的代码,如何下载查看?

  1. 方法:cherrypick指令,具体细节待补充。

你可能感兴趣的:(经验总结,git,github)