我不清楚如何git revert工作.例如,我想在头部后面恢复提交六次提交,恢复中间提交之间的所有更改.
说它的SHA哈希是56e05fced214c44a37759efa2dfc25a65d8ae98d.那我为什么不能做以下事情:
git revert 56e05fced214c44a37759efa2dfc25a65d8ae98d
Run Code Online (Sandbox Code Playgroud) 我有一个有两个分支的回购 - 主人和开发者.我正在主分公司工作并拉,并得到一个消息,说回购是最新的.我提交了我的更改,并推送到远程仓库(在github上).我收到一条消息说有些变化被拒绝了.
然后我做了一个git pull origin dev,这显然是错误的事情 - 因为它将dev分支与我的主人合并,就像一个白痴,我没有注意到这一点,直到我再次推动.所以上次提交显示Merge branch 'dev' of github.com:myuser/myrepo.
我可以通过执行a来回到本地仓库中的最后已知良好状态git reset --hard [sha],其中[sha]是合并之前的提交(虽然我不确定如何将更改转换为原点) - 或者从我读过我也可以做一个git revert -m然后提交/推动那个改变.
任何人都可以通过"正确的方式"来解除我的合并,并将两个分支恢复到合并之前的位置吗?
谢谢 - 如果重要的是这只是一个只有两个开发人员的共享仓库,所以它不会发生重大变化.
编辑添加:请跟我说话,好像我还是个孩子.我不得不承认这个Git的东西仍然让我困惑,所以我远远不是一个超级用户!谢谢
我用了
git reset --hard dc082bc...由于一些错误的提交,恢复到分支回到所需的先前状态.这让我当地的分公司很好.但是,我想将'origin'上的分支回滚到同一个commit,以便我可以重新开始.谁能告诉我如何将原始分支(非主人)恢复到此提交?
我已经尝试过git push origin master,但它给出了以下错误
! [rejected] branch -> branch (non-fast-forward) error: failed to push some refs to 'git@github.com:xxx/xxx.git' To prevent you from losing history, non-fast-forward updates were rejected Merge the remote changes before pushing again. See the 'Note about fast-forwards' section of 'git push --help' for details.
我已经将朋友的存储库中的主分支合并到我的工作目录中,使用:
git pull my_friend master
Run Code Online (Sandbox Code Playgroud)
我发现合并后的版本有错误.为了继续开发,我想恢复到合并之前的最后一次提交.
我试过了:
git reset --hard HEAD
Run Code Online (Sandbox Code Playgroud)
但这让我在合并后立即回到了州.(拉命令提交?!)
我也尝试过:
git revert HEAD
Run Code Online (Sandbox Code Playgroud)
但收到以下错误:
致命:提交2d72d8f367b987d8c16f5cb1a543a6886acdcf83是合并但没有给出-m选项.
我该怎么办?
在我们的前世,我们有一个分支系统......不正确。我们不得不恢复合并,因为我们决定不发布该功能。
现在我们准备发布该功能,但我很难弄清楚如何重新合并它们。
我从前一个分支创建了一个新分支,只是为了跟踪目的,并合并到我们主线的最新分支中。但我一直无法弄清楚如何将其合并回主线。