我不小心搞错了分支。 如何删除该提交?
当前回答
删除最近的提交,保留你所做的工作:
git reset --soft HEAD~1
删除最近的提交,破坏你所做的工作:
git reset --hard HEAD~1
其他回答
删除最近的提交,保留你所做的工作:
git reset --soft HEAD~1
删除最近的提交,破坏你所做的工作:
git reset --hard HEAD~1
不要删除它:因为只有一个提交git就足够了。
但是如果你在错误的分支上提交了几次,这就是git rebase——onto发光的地方:
假设你有这个:
x--x--x--x <-- master
\
-y--y--m--m <- y branch, with commits which should have been on master
,然后你可以标记master并将其移动到你想要的位置:
git checkout master
git branch tmp
git checkout y
git branch -f master
x--x--x--x <-- tmp
\
-y--y--m--m <- y branch, master branch
,将y分支重置到原来的位置:
git checkout y
git reset --hard HEAD~2 # ~1 in your case,
# or ~n, n = number of commits to cancel
x--x--x--x <-- tmp
\
-y--y--m--m <- master branch
^
|
-- y branch
,最后移动你的提交(重新应用它们,生成新的提交)
git rebase --onto tmp y master
git branch -D tmp
x--x--x--x--m'--m' <-- master
\
-y--y <- y branch
以下命令对我有效,所有本地提交的更改都被删除&本地被重置为与远程源/主分支相同。
Git重置——硬源
我想知道为什么我找到的最好的答案只在评论里!(作者:丹妮丝,领先86票)
git reset --hard origin
此命令将同步本地存储库与远程存储库,从而消除您在本地所做的所有更改。 您还可以按照Cleary在评论中建议的那样,执行以下操作来获取您在原点中拥有的确切分支。
git reset --hard origin/<branch>
执行git rebase -i FAR_ENOUGH_BACK并删除你不想要的提交行。
推荐文章
- 为什么我需要显式地推一个新分支?
- 如何撤消最后的git添加?
- Rubymine:如何让Git忽略Rubymine创建的.idea文件
- Gitignore二进制文件,没有扩展名
- Git隐藏错误:Git隐藏弹出并最终与合并冲突
- 了解Git和GitHub的基础知识
- 没有。Git目录的Git克隆
- Git与Mercurial仓库的互操作性
- 忽略git中修改(但未提交)的文件?
- “git restore”命令是什么?“git restore”和“git reset”之间有什么区别?
- Git合并与强制覆盖
- Git拉另一个分支
- 在Bash命令提示符上添加git分支
- 如何更改Git日志日期格式
- git pull -rebase和git pull -ff-only之间的区别