我是Git的新手并使用WebStorm推送和提取我的代码。我们正在开展一个共同的项目。拉特之夜,我的朋友更新了一些代码并推动了更改。
今天我删除了代码并合并了更改,并且错误地保留了我的更改并放弃了pull请求提供的更改。然后将这些更改推送到git remote ..
所以基本上现在我想要的是:
所以,这就是我想要做的事情:
现在,我正在使用Remote:
让我们用数学方法看这个
所以,基本上
我想要远程X + Y.
答案 0 :(得分:1)
如果要还原提交,可以使用以下命令:
git revert commit id goes here
示例:
git revert aa12bb34
这是revert的作用:
恢复提交意味着创建一个撤消所有提交的新提交 在错误提交中进行的更改。就像上面那样糟糕 提交仍然存在,但它不再影响当前的主服务器 以及任何未来的承诺。
答案 1 :(得分:0)
根据您的部分描述,您似乎不太可能使用任何“危险”选项,而您只是添加并将错误提交推送到遥控器。
假设远程存储库是“origin”,并且有问题的分支是“master”:
git log origin/master
这应该为您提供远程提交的日志。您应该看到错误的合并,然后是远程分支上的先前提交。
在开始尝试修复此问题之前,请将新分支作为保险政策标记为当前提示。如果你陷入困境,你可以轻松地返回提示提交:
git checkout -b master-before-i-tried-to-fix-this-mess
现在,在合并之前获取提交哈希,首先,执行非破坏性检出:
git checkout <hash>
其中<hash>
是错误合并之前的前一次提交的哈希值。
现在查看您的目录。说服自己,这是远程分支的尖端,然后才搞砸了。
然后,返回当地分支机构:
git checkout master
现在,强制将主分支重置为良好的提交:
git reset --hard <hash>
现在,您应该在执行合并之前回到状态。现在尝试再次进行合并:
git merge whatever-you-tried-to-merge
一旦你确信自己合并了一切:
git push --force
你真的需要确保你正在推动一个好的远程分支,如果其他人已经检查了远程存储库,你需要告诉他们你做了什么。
可以将固定的遥控器作为普通提交推送,但这需要更多的工作,实际上是一个更危险的程序。你只需要拿走你的肿块,并将其用作学习经验。
如果您发现再次搞砸了,则需要删除本地主分支,然后使用保险单重新创建:
git checkout master-before-i-tried-to-fix-this-mess
git branch -D master
git checkout -b master
然后再试一次。