Git 用于回滚重写历史的命令
Git command for rollback rewriten history
我正在用 git 做一些实验。在我的分支上我做了
git filter-branch --tree-filter "find . -name '*.java' -exec sed -i -e \ 's/stringToReplace/replacement/g' {} \;" 777b7d777c7777777dc16a8a939a8cdbabc28086..HEAD
那是在改写历史。我没有推动更改。现在我想知道如何重置那个东西?我想回滚那个重写。最简单的方法是什么?非常感谢。
当你 运行 git rebase
时,它会将你分支的原始提交 ID 存储在 .git/refs/original/refs/heads/<branchname>
中。如果你想撤销你的变基,你可以 运行:
git reset --hard original/refs/heads/master
这假设您在 master
分支上;如果不是,请适当更改 heads/
后的分支名称。
或者,如果您只想将本地存储库重置为上游存储库的状态,您可以:
git reset --hard origin/master
这会将您的本地分支重置为名为 origin
的远程分支上的 master
分支。
我正在用 git 做一些实验。在我的分支上我做了
git filter-branch --tree-filter "find . -name '*.java' -exec sed -i -e \ 's/stringToReplace/replacement/g' {} \;" 777b7d777c7777777dc16a8a939a8cdbabc28086..HEAD
那是在改写历史。我没有推动更改。现在我想知道如何重置那个东西?我想回滚那个重写。最简单的方法是什么?非常感谢。
当你 运行 git rebase
时,它会将你分支的原始提交 ID 存储在 .git/refs/original/refs/heads/<branchname>
中。如果你想撤销你的变基,你可以 运行:
git reset --hard original/refs/heads/master
这假设您在 master
分支上;如果不是,请适当更改 heads/
后的分支名称。
或者,如果您只想将本地存储库重置为上游存储库的状态,您可以:
git reset --hard origin/master
这会将您的本地分支重置为名为 origin
的远程分支上的 master
分支。