我有主分支。我想从两周前的提交中删除提交,直到主分支为止。
我无法使用git revert
,因为该分支中已存在已恢复并且会导致问题。我正在寻找一个解决方案,将 HEAD 指向先前的提交,或者主分支中的 SHA1 ,并设置 SHA1 作为主人。
答案 0 :(得分:2)
我正在寻找一个解决方案,将HEAD指向先前的提交,并说这是主人。
这是reset
当前分支为master
时的作用:
git reset SHA1
这将重置当前分支,使其指向指定的SHA1(commit,branch,tag,tree-ish)。请注意,您的工作树不会更改,因此如果它与SHA1的内容不同,则git diff
将显示已更改和/或未版本控制的文件。如果您希望工作树与SHA1的内容匹配,请使用--hard
标志。
请注意,如果您想将此更改的分支推送到之前已经推送过的远程,则需要将-f
标记与git push
一起使用,因为历史记录已被重写。
在重写公共分支的历史时,请记住常见的问题。