zoukankan      html  css  js  c++  java
  • 关于git远程被覆盖的问题

    有同事A和B,git远程版本为A0,两个人的本地项目已经跟远程同步。同事A先向git提交了3次,A1、A2、A3。git远程版本为A0、A1、A2、A3。同事B也向git提交了1次B1,但是同事B提交项目时忘了先拉取pull,再推送push,导致同事A的提交被覆盖。此时git远程版本变成A0、B1。怎么办呢?

    git提供了一个方法叫版本回退。

    git reset --hard xxxxx     //xxxxxx表示git的版本号

    首先确保我们有master权限,我们现在想回退到A3这个版本,假定A3的版本号为c12345。打开Git Bash,输入

    git reset --hard c12345

    继续输入git log,查看当前版本,可以看到,版本已经回退到A3这个版本。但是这仅仅是本地项目回退了,我们需要本地远程同步,进行强制推送,继续输入

    git push -f

    这时候大部分会报你没有权限推送之类的信息,这是因为这项目是受保护的。要想强制推送,必须先解除保护。打开git远程项目界面,选择“setting”-"repository"。’下拉到以下界面,点击“Unprotect”,解除对项目的保护。再重新git push -f即可。强制推送后,应该把该项目重新设置为保护状态。

    至此,版本回退完成。同事B再次提交即可。

  • 相关阅读:
    pytest实现参数化(@pytest.mark.parametrize)
    pytest标记测试用例为预期失败(@pytest.mark.xfail)
    pytest标记跳过某些测试用例不执行
    pytest的conftest.py配置
    pytest之fixture使用
    模拟赛42 题解
    模拟赛41 题解
    一些可能永远用不到的性质
    补锅
    骗分杂谈
  • 原文地址:https://www.cnblogs.com/saule/p/11531939.html
Copyright © 2011-2022 走看看