撤销改动
未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/06
- ♥ Stash10/02
- ♥ 【高数上册】:第一章07/20
- ♥ Notion:函数应用记述08/05
- ♥ C++标准模板库编程实战_智能指针11/30
- ♥ Windows 核心编程 _ 内核对象:同步异步设备IO08/24