tag详解 我怎样才能回滚一个github库到特定的提交?




git版本 (3)

我的github现在有100个提交。 我需要回滚存储库以提交80,并删除所有后续的。

为什么? 这个回购应该是用于从其他用户合并。 由于过度编辑,一堆合并进入我的提交。 这是由于我的远程分支的标签错误,其中3个开发者被标记为彼此。 我需要重置到这一点,然后向前拉。

我想重新绑定,如下例所示: 我如何删除GitHub上的提交?

但是,git希望我做很多冲突管理。 有一种更简单的方法吗?


其他方式:

检出要恢复的分支,然后将本地工作副本重新设置为您希望成为远程服务器上最新版本的提交(在它之后的所有内容都会被再见)。 为此,在SourceTree中,我右键单击并选择了“将BRANCHNAME重置为此提交”。

然后导航到您的存储库的本地目录并运行以下命令:

git -c diff.mnemonicprefix = false -c core.quotepath = false push -v -f --tags REPOSITORY_NAME BRANCHNAME:BRANCHNAME

这将删除当前存储库中当前存储的所有提交,但仅针对该分支。


git reset --hard <old-commit-id>
git push -f <remote-name> <branch-name>

注意:正如下面的评论中所写的, 在协作环境中使用它是很危险的:您正在重写历史


要撤消最近的提交,我这样做:

第一:

git log

获取最新的SHA ID撤销。

git revert SHA

这将创建一个与您的提交完全相反的新提交。 然后你可以推动这个新的提交来让你的应用程序进入之前的状态,并且你的git历史记录将相应地显示这些更改。

这对于你刚刚承诺的事情的即时重做是很好的,对于我来说更常见的情况是这样。

正如Mike所说,你也可以这样做:

git revert HEAD




github