git checkout – file: 撤销我们对工作区的修改(没有提交到暂存区)
当我们在工作区修改了之后,并没有提交到暂存区,如果要撤销对
某个文件的修改的话,就使用
git checkout -- 文件名
例如:
git checkout -- readme.txt
这样就能撤销本地的修改了,重新编辑readme.txt发现之前的修改没有了。
git reset HEAD <file>:撤销对暂存区的修改,重新放回工作区(没有提交到本地库)即:只是add了,没有commit的时候
首先使用git add readme.txt,然后使用git status 查看当前的branch(分支)是干净的。(绿色:表示已经从工作区提交到了暂存区)
然后使用了git reset HEAD命令,再输入git status发现:提示当前的分支modified,并且是红色(说明工作区的readme.txt并没有提交到暂存区中)
以上说明了git reset HEAD readme.txt确实是将暂存区在的文件重新放回了工作区中。
至于如果到了版本库中,之前说的:
git reset --hard 索引ID,可以将版本库和工作区的文件都回退到特定版本中。
如果是还没有push,只是在本地commit
git reset --soft|--mixed|--hard <commit_id>
git push develop develop --force (本地分支和远程分支都是 develop)
这里的<commit_id>就是每次commit的SHA-1,可以在log里查看到
–mixed 会保留源码,只是将git commit和index 信息回退到了某个版本.
–soft 保留源码,只回退到commit信息到某个版本.不涉及index的回退,如果还需要提交,直接commit即可.
–hard 源码也会回退到某个版本,commit和index 都会回退到某个版本.(注意,这种方式是改变本地代码仓库源码)