在本地系统中恢复 Git 提交

问题描述 投票:0回答:2

我只想在本地系统中恢复或删除我的 git 提交,这样当我从本地计算机推送代码时,它不会出现在 bitbucket 或 github 的提交列表中。请建议一个方法。

git github
2个回答
2
投票

您可以使用

git reset
命令重置最后一次提交

运行此命令以列出所有提交

$ git log

commit a65aec279778a25870a2f194c0c91584e9a870c1
Author: Deepak <[email protected]>
Date:   Wed Aug 31 19:58:17 2016 +0530
    
    New commit

commit cb1137a1c6cb2ac7bdfe25e9cdda8a7513d599fc
Author: Deepak <[email protected]>
Date:   Wed Aug 31 19:48:41 2016 +0530

    Old commit

并使用

恢复到
"Old commit"

状态
git reset cb1137a1c6cb2ac7bdfe25e9cdda8a7513d599fc 

注意:这是您要恢复的旧提交的提交哈希

要确保

"New commit"
已删除,请再次检查

$ git log

commit cb1137a1c6cb2ac7bdfe25e9cdda8a7513d599fc
Author: Deepak <[email protected]>
Date:   Wed Aug 31 19:48:41 2016 +0530

    Old commit

-2
投票

首先,如果你只做了该提交,我更愿意删除本地分支并获取远程分支,这将是逃避强制提交或分支转移的最佳方法。

要删除分支

git branch -D <branch name>
,你应该确保,你不在分支上,你需要删除。

之后,您可以简单地签出分支本身,您会注意到那里的提交不可用

git checkout <branch name>

当然,如果您有超过 1 个提交需要合并到远程,您应该使用

git reset --hard <commit-id>
然后推送代码,可能存在不会推送的情况,并且会要求采取树枝的拉力,如果你确定要推动它,你一定可以去
git push origin <branch name> --force

如果您正在与团队合作,请不要使用此功能,否则您的团队将因强制提交而遭受损失。你需要做的是 rebase

© www.soinside.com 2019 - 2024. All rights reserved.