git放弃本地文件修改

写代码时,本来想切换到主分支,但是切换失败,因为我本地的代码修改了,所以想要放弃本地修改的代码(或者有时代码改的乱七八糟想放弃本地修改)

参考:https://www.cnblogs.com/qufanblog/p/7606105.html

1. 未使用git add 缓存代码

  • 使用git checkout -- filename,注意中间有--
git checkout -- filename
  • 放弃所有文件修改 git checkout .
git checkout .
  • 此命令用来放弃掉所有还没有加入到缓存区(就是 git add 命令)的修改:内容修改与整个文件删除
  • 此命令不会删除新建的文件,因为新建的文件还没加入git管理系统中,所以对git来说是未知,只需手动删除即可

2. 已使用git add 缓存代码,未使用git commit

  • 使用 git reset HEAD filename
git reset HEAD filename
  • 放弃所有文件修改 git reset HEAD
git reset HEAD
  • 此命令用来清除 git 对于文件修改的缓存。相当于撤销 git add 命令所在的工作。在使用本命令后,本地的修改并不会消失,而是回到了第一步1. 未使用git add 缓存代码,继续使用用git checkout -- filename,就可以放弃本地修改

3. 已经用 git commit 提交了代码

  • 使用 git reset --hard HEAD^ 来回退到上一次commit的状态
git reset --hard HEAD^

  • 或者回退到任意版本git reset --hard commit id ,使用git log命令查看git提交历史和commit id
git reset --hard commit id

推荐阅读更多精彩内容

  • git 使用笔记 git原理: 文件(blob)对象,树(tree)对象,提交(commit)对象 tree对象 ...
    神刀阅读 3,142评论 0 10
  • 前言 Git使用教程 Git是什么 Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。 ...
    90后的思维阅读 495评论 0 0
  • 1. 安装 Github 查看是否安装git: $ git config --global user.name "...
    Albert_Sun阅读 11,432评论 9 162
  • 简介 Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。 Git 与常用的版本控制工具 ...
    闽越布衣阅读 1,948评论 0 18
  • (预警:因为详细,所以行文有些长,新手边看边操作效果出乎你的预料) 一:Git是什么? Git是目前世界上最先进的...
    axiaochao阅读 1,583评论 1 8
  • 内心丰富的人,追求外物的简洁,只有内心空虚的人才会把自己的住所塞的满当当。 当你内心足够丰富时,就会觉得外物越简单...
    Gracias2018阅读 86评论 0 0
  • 这是沙丁鱼自由行的第3篇推送 编辑/整理 然若和风 首先要跟大家解释一下,退税(tax free shopping...
    沙丁鱼风暴阅读 18,769评论 3 6