撤销改动
未add
1 2 3 4 |
//撤销单个 git checkout -- README.md //撤销所有 git checkout . |
add了,没commit
不会删掉本地文件的修改内容,只是从add操作的集合中去掉
1 2 3 4 |
//放弃单个 git rm --cached README.md //放弃全部 git rm --cached -r . |
commit了,没push
--soft只是删掉commit记录,不删掉本地文件的修改变化
--hard会删掉commit记录,并删掉本地文件的修改内容,让本地文件的状态恢复到远程的状态。这种情况可以把本地文件先保存一份,之后再对比文件
1 2 3 4 5 6 |
git reset --soft HEAD^ //或者 git reset --soft HEAD~1 //撤销2此commit git reset --soft HEAD~2 |
- --soft
- 不删除工作空间的代码改动,仅撤销commit,不撤销git add file
- --hard
- 删除工作空间的代码改动,撤销commit且撤销git add file
commit了,没push,要改注释
只是单纯的修改掉提交注释,不会有其它影响
1 |
git commit --amend |
push了
让本地文件的状态变回到上一个commit,本地文件的修改内容会丢失掉,不会影响到远程,同时多了一条撤销的log。这种情况可以把本地文件先保存一份,之后再对比文件
1 2 |
//不使用commit message退到上一个commit git revert HEAD --no-edit |
让本地文件的状态变回到上一个commit,本地文件的修改内容会丢失掉,不会影响到远程,同时多了一条撤销的log,log是编辑的内容。这种情况可以把本地文件先保存一份,之后再对比文件
1 2 |
//使用commit message退到上一个commit git revert HEAD --edit |
撤销本次commit,把本地修改的内容丢失掉,并且不会有log,不会影响远程的内容,只是本地被撤销了。这种情况可以把本地文件先保存一份,之后再对比文件
1 2 |
//撤销改动到暂存区 git revert HEAD --no-commit |
更新内容
覆盖单个
本地的这个文件会被远程的覆盖掉,会丢失本地修改内容。这种情况可以把本地文件先保存一份,之后再对比文件
1 2 |
git fetch git checkout origin/master -- path/to/file |
覆盖所有
这种情况可以把要被强行覆盖的文件先保存一份,覆盖之后,再对比文件
1 2 3 |
git fetch --all git reset --hard origin/master git pull |
声明:本文为原创文章,版权归Aet所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ Git 版本回滚10/02
- ♥ 相关命令10/02
- ♥ 关于多字节和宽字节二12/04
- ♥ 行为型:观察者模式08/27
- ♥ Visual Studio:管理工程文件10/14
- ♥ 51CTO:C++网络通信引擎架构与实现一09/09