可能重复:
撤消'git push'
我推了一些不好的代码,我是存储库的唯一用户.我怎么能回滚我的最后一次提交?
什么是移动你的最后git的承诺回到"不改变上演" +"未跟踪文件"方面的最佳方式(只在您的本地回购与提交的问题被不推/,有效地从HEAD删除)?
换句话说,如何回滚提交,但自动将差异应用于未分区?
我正在尝试删除我的一个GitHub存储库中的最后两个提交.我试过这里的建议:git push -f origin HEAD ^^:master.它似乎工作,最后两个提交被删除.
然后我用git rebase -i HEAD~2从我的本地存储库中删除它们.我删除与这些提交相关的行,并使用git log检查它们是否被正确删除.
之后,我在本地存储库中进行了一些更改,进行了新的提交并推送到GitHub.问题是在我的GitHub帐户中我有前两次提交我试图删除.
我认为它存在于我的本地存储库中,因为如果我将我的Github存储库克隆到本地,并在我推送新提交时在这里进行一些更改,那些旧提交不会被推送到GitHub.
任何的想法?
我是git的新手,我正在研究git.
我在git中添加了一些文件:
git add <file1>
git add <file2>
Run Code Online (Sandbox Code Playgroud)
然后我想推动审查,但我错了
git commit
Run Code Online (Sandbox Code Playgroud)
所以我改变的文件不用于评论.
现在,如果我输入命令:
git status
Run Code Online (Sandbox Code Playgroud)
它说
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
nothing to commit (working directory clean)
Run Code Online (Sandbox Code Playgroud)
我想恢复该提交,我想推送这些文件进行审核而不是提交.谁能让我知道我怎么能这样做?
我试图了解它们之间的区别
git push -f
Run Code Online (Sandbox Code Playgroud)
和
git push --force-with-lease
Run Code Online (Sandbox Code Playgroud)
我的猜测是,如果遥控器没有本地分支没有的提交,后者只会推送到遥控器?
如果有更好的方式来表达问题,lmk,但希望它很清楚.
假设我有这个功能分支"foo".现在我想将它合并回master,但我添加了一些我不想在master中调试的代码.
调试代码在它自己的提交中,所以我可以git cherry-pick在每次提交时使用并省略此提交.但那会很烦人.
是否有一些"逆樱桃选择"这样做,或互动合并?
是否有可能在Git中恢复已提交的文件?我已经将提交推送到GitHub然后我意识到有一个我不想被推送的文件(我还没有完成更改).
考虑这种情况:
然后发现他在#n + 2的提交中引入了一个缺陷.
如何开发.回滚他的最后2次提交并继续开发提交#n + 1?
试过git reset --hard HEAD~2*,但它回到了开发者A的提交#n.
我已经对我希望撤消的git仓库进行了一些更改.
我的git repo看起来像这样:
A-B---- master
\ /
C-D * develop
Run Code Online (Sandbox Code Playgroud)
我在develop分支机构,忘记它与master分支不同,进行了更改develop,将其合并master,然后推送到我的遥控器(称为publish).
因为自B(共同祖先)以来主人没有变化,所以git进行了快进合并.
现在,我的回购看起来像这样:
A-B-C-D master, develop, remotes/publish/master, remotes/publish/develop.
Run Code Online (Sandbox Code Playgroud)
我想恢复最后一次合并,恢复master到B.
从我在如何撤消Git中的最后一次提交中读到的内容?,我曾经git reset sha-of-B将我的master分支恢复到修订版B.
问题:
develop到修订版D?我正在努力学习如何有效地使用Git,我想知道我应该如何(良好做法/不良做法?)解决以下案例:
假设我在master中有以下提交链:
然后我意识到在最后两次提交中完成的操作是完全错误的,我需要再次从Commit 1开始.问题: