这就是我在我所谓的稳定分支上所做的事情......
% git rebase master
First, rewinding head to replay your work on top of it...
Fast-forwarded alpha-0.3.0 to master.
% git status
# On branch alpha-0.3.0
# Your branch is ahead of 'origin/alpha-0.3.0' by 53 commits.
#
nothing to commit (working directory clean)
% git push
Fetching remote heads...
refs/
refs/heads/
refs/tags/
refs/remotes/
'refs/heads/master': up-to-date
updating 'refs/heads/alpha-0.3.0'
from cc4b63bebb6e6dd04407f8788938244b78c50285
to 83c9191dea88d146400853af5eb7555f252001b0
done
'refs/heads/unstable': up-to-date
Updating remote server info
Run Code Online (Sandbox Code Playgroud)
这是我后来意识到的一个错误.我想撤消整个过程,并将alpha-0.3.0分支恢复到原来的状态.
我该怎么办?
我刚刚做了一次git pull --rebase origin master,发生了冲突.
首先,这个冲突是在一个我没有触及的文件中,大约有10个提交回来.为什么会这样?
然后我意外地打字git rebase --skip,它'跳过那个补丁'.
担心我跳过了一个提交,我检查了一个新版本的master分支,并在我做了rebase的分支和新的master分支之间做了一个差异.diff中显示的唯一更改是最新提交,查看日志,"已跳过"的修补程序显示在提交历史记录中.
谁能解释一下这里发生了什么?
在Git中,如果你对它不满意,你如何回滚一个rebase?
Git没有干运行的rebase.如果我做了一个rebase并且尚未推送它,我怎么回滚到之前,好像从未发生过?
在IDEA中,我试图推动一些提交.
我要求在远程服务器上看起来像单个操作.
我点击按下并看到以下窗口

我希望在这里看到壁球复选框但是看不到它.
请帮我.
扯淡!大约一个星期前,我在尝试清理我的存储库时,正在重新设置一些提交,显然我实际上没有完成它.今天,一个星期和几个提交之后,我从今天开始重新订购一些提交,它告诉我,我已经处于变革的中间.
这应该是复制我的回购以防万一的提示.但我没有...而是我git rebase --abort当时听起来正确.嗯,那不对.它从一周前中止了反转,并将主人的HEAD重置为旧的.假!
我还有其他几个相当近的分支,我已经多次推到远程,但最近的变化似乎永远消失了.我没有适当级别的git-fu知道是否有任何方法可以恢复我的更改.
我搞砸了吗?
编辑 - 哇!多谢你们!git reflog太棒了!我已经完全恢复了......经验教训.标记Tchalvak的答案被接受为第一个发布.
我添加了一个新文件F1并对另一个文件F2进行了更改,但后来又进行了"git reset --hard HEAD ^",我丢失了对文件的所有更改.
有一些方法,我可以让他们回来.
我在这里看了一个相关的问题:如何撤消git reset --hard HEAD~1? 但是,这个问题假设一个人做了一个git提交.
我只是试图将一个非常古老的分支重新修改为我的主人.合并三个文件中只有一个存在问题,所以我做了一个不假思索的--skip,认为它会跳过那个文件,但是当它发生时,它似乎已经跳过了我所有的更改,并向前滚动.所以现在rebase已经完成,我的变化似乎已经消失了.
我已经看到了关于撤销rebase的问题,但它对我来说都是希腊语,我看到了reflog,但我不知道在rebase之前哪个分支附加了.
在任何情况下,我都不需要撤消rebase,我只是希望能够恢复两个文件中的更改.无论如何都要正确地做到这一点(如果没有这个,我只需要恢复昨天的存储库备份并手动选择这些位).
完成功能分支后,git rebase -i我意外删除了所有提交.我不完全确定,但我怀疑不是压缩我的提交,而是用提交消息替换整个条目.
http://shafiulazam.com/gitbook/4_interactive_rebasing.html说:
交互式rebase可以做的最后一个有用的事情就是为你删除提交.如果不是为提交行选择"选择","压缩"或"编辑",只需删除该行,它将从历史记录中删除提交.
我的问题是:有没有办法恢复/撤消这个?
我git rebase master在我的分支上执行了一次,直到我将它推到遥控器之后才意识到它不是我想要的.只有我自己和另外一个人参与这个项目,所以我知道他们没有采取最新的变化.
在StackOverflow上阅读其他问题,它说要使用git reflog然后git reset --hard HEAD@{n}再到rebase之前.我这样做是为了转到我在rebase之前创建的一个提交,但它没有恢复到以前的状态.
我错过了一步吗?有没有办法让对方强行推回他的回购以恢复他们的状态?
谢谢
我执行了以下行:
git rebase -i dev --onto master
Run Code Online (Sandbox Code Playgroud)
我想这会削减我的开发分支并将其粘贴在我的主分支之上.并且-i会让我崩溃变更集.
但是当它提出编辑器时,我没有看到任何变更集.我所看到的只是"noop".所以我就退出了.然后我看看我的git历史,我所有的变化都消失了.我的开发分支就在我的主人所在的地方!
有人可以帮我恢复吗?谢谢!