Git的撤销操作:git checkout revert reset;问题git push rejected

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在用,将会出现问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值