git 撤销操作
在项目中我们也经常会使用到撤销操作 使用这一节我们就讲一讲Git的撤销操作
撤销操作主要有如下几种
git commit --amend 撤销上一次提交 并讲暂存区文件重新提交
git revert <commit_id> 撤销上一次提交
git checkout -- <file> 拉取暂存区文件 并将其替换成工作区文件
git reset HEAD -- <file> 拉取最近一次提交到版本库的文件到暂存区 改操作不影响工作区
git checkout filename
该命令用于拉取暂存区文件 并将其替换成工作区文件
当我们把工作区弄乱了 可以帮我们拉取 暂存区 恢复工作区
原文:https://blog.csdn.net/qq_36431213/article/details/78858816
git reset用法总结
git reset
将暂存区的内容和本地已提交的内容全部恢复到未暂存的状态,不影响原来本地文件(未提交的也 不受影响)
git reset (–mixed) HEAD~1
回退一个版本,且会将暂存区的内容和本地已提交的内容全部恢复到未暂存的状态,不影响原来本地文件(未提交的也 不受影响)
git reset –soft HEAD~1
回退一个版本,不清空暂存区,将已提交的内容恢复到暂存区,不影响原来本地的文件(未提交的也不受影响)
git reset –hard HEAD~1
回退一个版本,清空暂存区,将已提交的内容的版本恢复到本地,本地的文件也将被恢复的版本替换
https://blog.csdn.net/alphapersonality/article/details/80581730
git reset HEAD之后,出现git push rejected问题
git reset之后,重新git push时出现如下问题:
# lichunhong @ lichunhong-ThinkPad-T470p in ~/Documents/src/motion_planner on git:lichunhong/planner_v3_ros_xavier_0617 o [18:14:59] C:128
$ git push origin lichunhong/planner_v3_ros_xavier_0617
To ssh://git@10.10.81.27:7999/plan/motion_planner.git
! [rejected] lichunhong/planner_v3_ros_xavier_0617 -> lichunhong/planner_v3_ros_xavier_0617 (non-fast-forward)
error: failed to push some refs to 'ssh://git@10.10.81.27:7999/plan/motion_planner.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
问题原因:git reset之后本地版本回退,但是云端版本没有回退,导致本地落后于云端
解决方法:使用命令强制push到云端
git push -f origin lichunhong/planner_v3_ros_xavier_0617
这样做会将云端的版本本地版本强制一致,回退的那次commit将会丢弃,如果回退的commit有其他partner在用,将会出现问题。