撤销改动
未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介绍06/17
- ♥ Learn Git Branching01/02
- ♥ Protobuf记述与使用01/24
- ♥ 大话数据结构_线性表_单链表11/01
- ♥ 结构型:委托模式07/28
- ♥ 【AcWing 语法基础课 第六讲】03/02