Git命令用于回滚重写历史记录

时间:2017-12-07 15:00:31

标签: git undo

我正在用git做一些实验。在我的分支上我做了

git filter-branch --tree-filter "find . -name '*.java' -exec sed -i -e \ 's/stringToReplace/replacement/g' {} \;" 777b7d777c7777777dc16a8a939a8cdbabc28086..HEAD

这是重写历史。我没有推动改变。现在我想知道如何重置那个东西?我想回滚那个重写。最简单的方法是什么?非常感谢。

1 个答案:

答案 0 :(得分:2)

当您运行git rebase时,它会将您的分支的原始提交ID存储在.git/refs/original/refs/heads/<branchname>中。如果要撤消您的rebase,您可以运行:

git reset --hard original/refs/heads/master

这假设您在master分支机构;如果没有,请在heads/之后适当更改分支名称。

或者,如果您只想将本地存储库重置为上游存储库的状态,则可以:

git reset --hard origin/master

这会将您的本地分支重置为名为master的遥控器上的origin分支。