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再次提交即可。

  • 相关阅读:
    arm-linux-3.4.2移植for2440
    编译内核是出现:arch/arm/mm/tlb-v4wbi.S:64:error: too many positional arguments
    poj3050 Hopscotch
    poj3187 Backward Digit Sums
    poj2718 Smallest Difference
    hihocoder offer收割编程练习赛10 C 区间价值
    poj1862 Stripies
    poj3262 Protecting the Flowers
    poj2229 Sumsets
    poj2385 Apple Catching
  • 原文地址:https://www.cnblogs.com/saule/p/11531939.html
Copyright © 2011-2022 走看看