git 硬重置,但推送时图表没有变化

git reset hard, but no changes on graph when pushing

我有一个 gitlab 仓库,进行了提交和合并。

我想加入 id: 9bc6dd4.

我正在进行的尝试:

git log --oneline --graph -5
git reset --hard 9bc6dd4
git clean -f -d
git fetch --all
git push -u origin +master

当我推送到远程仓库时,远程仓库没有任何变化。

您的问题文本有:

Attempts I am making:

git log --oneline --graph -5
git reset --hard 9bc6dd4
git clean -f -d
git fetch --all
git push -u origin +master

而您标记为“我的本地回购日志”的图片开头为:

user@user-dekstop:~Desktop/work/front$ git log --oneline --graph -5
*   4efe036 (HEAD -> development, origin/mybranch, ...) ...

前提是我在转录过程中没有打错字。这意味着您的 当前分支 development,而不是 master。注意 HEAD -> development 文本。因此,您的 git reset 将调整您的分支名称 development。但是,您的 git push 说要将 master 推送到 master(通过 + 使用 --force)。由于您自己的 master 没有移动并且仍然命名与 origin/master 相同的提交,因此此 git push 无效。

如果您打算将远程 master 分支还原为提交 9bc6dd4,有几种方法可以做到这一点:

一个。只需指示 git 强制将 9bc6dd4 推送到 master :

git push --force-with-lease origin 9bc6dd4:master

# anything that points to '9bc6dd4' can be used :
# after your 'git reset --hard' command : HEAD or development point to that commit
git push --force-with-lease origin HEAD:master
git push --force-with-lease origin development:master

b。首先切换到本地 master 分支,重置本地分支,然后强制推送:

git checkout master
git reset --hard 9bc6dd4
git push --force-with-lease

如果您的本地 master 分支设置为跟踪 origin/master,那么最后一个命令将等同于 git push --force-with-lease origin master:master