git重置后发生冲突 - 硬盘

时间:2016-09-29 15:10:05

标签: git

我有一个名为master的分支,我想重置在此分支上进行的所有更改。需要将所有提交从名为origin/d的分支移动到master。 所以这就是我所做的(在分支master上):

git fetch -all
git reset --hard origin/d
git clean -f -d
git push origin master --force

我收到了以下信息:

remote: error: denying non-fast-forward refs/heads/master (you should pull first)

但是我不想拉,我只想将所有提交从分支d移动到分支master(忽略分支master上的所有本地/非本地提交)。

当我提出git pull时,我有许多冲突,我不想解决。任何人都可以帮助我并告诉我最简单的方法是什么?

2 个答案:

答案 0 :(得分:3)

错误消息表明(1)您的服务器不允许强制更新(--force参数),以及(2)由于某种原因Git想要将m推送到master

要暂时解决第二个问题,您可以这样做:

git push origin m:refs/heads/m --force-with-lease

(最好使用--force-with-lease而不是--force,因为前者只会在您的远程跟踪分支是最新的时候覆盖。如果其他人碰巧提交了自上次提交后的提交fetch ed,然后--force将覆盖这些,导致工作丢失。)

但是,如果您的服务器禁止强制更新,那么它也可能会拒绝该命令。如果您拥有对服务器的管理员访问权限,那么一个选项就是更改它。否则,要解决此问题,您应该能够删除分支,然后按:

git push origin --delete m
git push origin m:refs/heads/m

如果这不起作用,那么您必须联系您的服务器管理员并要求他们允许您删除分支和/或强制更新它们。

答案 1 :(得分:2)

你提出这个错误是因为你没有来自存储库的最新更改,所以你应该提取它们。

git reset --hard HEAD
git pull --rebase // fetch and pull together

在解决冲突后(如果它们存在),您可以进行推送

git push origin master