git相关问题解析,你想要的都有

  • Workspace: 作业区,便是你平常寄存项目代码的当地

  • Index / Stage: 暂存区,用于暂时寄存你的改动,事实上它仅仅一个文件,保存行将提交到文件列表信息

  • Repository: 库房区(或版别库),便是安全寄存数据的方位,这儿面有你提交到一切版别的数据。其间HEAD指向最新放入库房的版别

  • Remote: 长途库房,保管代码的服务器,能够简略的认为是你项目组中的一台电脑用于长途数据交换

重置提交

状况一、没有push到长途的状况(仅仅在本地commit)

git reset --soft|--mixed|--hard <commit_id>
git push develop develop --force  (本地分支和长途分支都是 develop)
  • --mixed 为默许,能够不必带该参数,用于重置暂存区的文件与上一次的提交(commit)坚持共同,作业区文件内容坚持不变。仅仅将git commit和index 信息回退到了某个版别。

  • --soft 保存源码,只回退到commit信息到某个版别.不触及index的回退,假如还需求提交,直接commit即可。 git reset --soft HEAD

  • --hard 参数吊销作业区中一切未提交的修正内容,将暂存区与作业区都回到上一次版别,并删去之前的一切信息提交。

状况二、现已push到长途的状况

关于现已把代码push到线上库房,你回退本地代码其实也想一起回退线上代码,回滚到某个指定的版别,线上线下代码坚持共同,你要用到下面的指令

git revert <commit_id>

revert 之后你的本地代码会回滚到指定的前史版别,这时你再 git push 既能够把线上的代码更新。

git revert是用一次新的commit来回滚之前的commit

HEAD 阐明:

  • HEAD 表明当时版别
  • HEAD^ 上一个版别
  • HEAD^^ 上上一个版别
  • HEAD^^^ 上上上一个版别
  • 以此类推…

能够运用 ~数字表明

  • HEAD~0 表明当时版别
  • HEAD~1 上一个版别
  • HEAD^2 上上一个版别
  • HEAD^3 上上上一个版别
  • 以此类推…

其它相关文章引荐

  • git submodule
  • js获取git分支信息
  • git 组合提交信息
  • 从Git规划原理到事务体系规划与开发

git相关问题解析,你想要的都有

我是 甜点cc

微信大众号:【看见另一种或许】

专心前端开发,也喜爱专研各种跟本职作业联系不大的技能,技能、产品爱好广泛且稠密。本号首要致力于共享个人经验总结,期望能够给一小部分人一些细小协助。

本文正在参与「金石方案 . 分割6万现金大奖」