git - 如何 checkout 旧提交并将其推送到当前分支?

标签 git gitlab

我的分支上有一些 incorrect commit/push,然后我想恢复到旧的 正确 提交并将其推送到当前分支

我有一个问题:

git log
    new: xxxxxxx
    ...
    old: ac758a3

git checkout ac758a3
git commit -m 'revert to old branch (ac758a3) to push it on current branch'

输出:

HEAD detached at ac758a3
nothing to commit, working directory clean

[编辑]

示意图:

  • A(我想要的正确提交)--- B(错误提交)--- C(错误 提交)

所以我想有以下流程:

  • A --- B --- C --- A

我想恢复到 A(旧提交)并将其推送到当前分支(同一个分支)。

快速解决方案是什么?


提前致谢。

最佳答案

git reset --hard <commit-id>是你亲爱的 friend 吗?

按照以下步骤操作:

  1. 在您当前的分支上运行命令:git log
  2. 从您要返回的日志中复制正确的提交 ID。
  3. 运行命令:git reset --hard <commit-id-copied-in-step-2 above>
  4. 将您的分支推送到远程:git push origin <my-feature-branch> -f .

注意:你将无法正常推送它,你必须强制推送它,因为我们已经改变了那个分支的历史并且与远程不同步。

关于git - 如何 checkout 旧提交并将其推送到当前分支?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50461380/

相关文章:

gitlab - 除了变量有一些值之外,如何运行 gitlab 作业?

windows - Git for Windows "No tags file"来自 "git diff"命令的响应

docker - 如何理解 "/bin/true"命令在 "docker run ..."命令中的作用?

git - git 可以忽略 git status 中的某些特定行吗?

gitlab - gitlab服务器中的负载均衡

git - 如何使用不同的电子邮件管理git中的多个项目?

swift - build设置必须设置为使用 Swift 的目标支持的值

git - 如何使用 git --word-diff 显示空格差异?

Git 克隆、推送和 pull Ubuntu 服务器上的多个用户

reactjs - 从 Git 将所有删除的文件恢复到当前工作目录