我想放弃commit <commit-hash>后所做的所有更改。 于是我做了:
git reset --hard <commit-hash>
现在我想对我的遥控器做同样的事情。我该怎么做呢?我已经做了一些提交(和推)后<commit-hash>,我只是想放弃他们所有。只是在这过程中出了严重的问题我不想让事情变得更糟。;(
我基本上想把我的原点/主节点倒回到<commit-hash>
我想放弃commit <commit-hash>后所做的所有更改。 于是我做了:
git reset --hard <commit-hash>
现在我想对我的遥控器做同样的事情。我该怎么做呢?我已经做了一些提交(和推)后<commit-hash>,我只是想放弃他们所有。只是在这过程中出了严重的问题我不想让事情变得更糟。;(
我基本上想把我的原点/主节点倒回到<commit-hash>
当前回答
如果您的分支不是开发或生产分支,实现这一点的最简单方法是在本地重新设置某个提交,并从那里创建一个新分支。你可以使用:
git 结帐 000000
(其中000000是你想要去的提交id),然后简单地创建一个新分支:
Git远程添加[name_of_your_remote]
然后你可以创建一个新的PR,一切都将正常工作!
其他回答
在GitLab上,在执行此操作之前,您可能必须将分支设置为未保护状态。可以在[repo] > Settings > Repository > Protected Branches中设置。那么马克回答的方法就有用了。
git reset --hard <commit-hash>
git push -f origin master
做一件事, 获取提交的SHA号。比如87c9808然后,
移动你自己,即你的头到指定的提交(通过做 Git重置-硬89cef43//在这里提到你的数字) 接下来在一个随机文件中做一些更改,这样git会要求你在本地提交,然后远程提交 因此,您现在需要做的是。 应用变更后 Git commit -a -m "trial commit" 现在推动以下提交(如果已经在本地提交) 通过 Git push origin master 现在少管所要问你的是
错误:无法推送一些引用 “https://github.com/YOURREPOSITORY/AndroidExperiments.git” 提示:更新被拒绝,因为你当前分支的提示落后了 提示:它的远程对等体。集成远程更改(例如: 提示:'git pull…'),然后再推一次
所以现在你能做的就是
Git push—force origin master
因此,我希望它能起作用:)
如果你想要一个以前版本的文件,我建议使用git签出。
git checkout <commit-hash>
这样做将把你送回过去,它不会影响你的项目的当前状态,你可以来到主线 Git结账主线
但是当您在参数中添加一个文件时,该文件将返回给您 从以前的时间到您当前的项目时间,即您当前的项目发生了更改,需要提交。
git checkout <commit-hash> -- file_name
git add .
git commit -m 'file brought from previous time'
git push
这样做的好处是它不会删除历史记录,也不会恢复特定的代码更改(git revert)。
点击这里查看更多信息https://www.atlassian.com/git/tutorials/undoing-changes#git-checkout
如果您的分支不是开发或生产分支,实现这一点的最简单方法是在本地重新设置某个提交,并从那里创建一个新分支。你可以使用:
git 结帐 000000
(其中000000是你想要去的提交id),然后简单地创建一个新分支:
Git远程添加[name_of_your_remote]
然后你可以创建一个新的PR,一切都将正常工作!
我最近也遇到了同样的问题,我通过两步解决了这个问题:
用git Reset将其重置为本地git——hard HEAD~1这里HEAD~1是最近提交的。 将其强行推到所需的分支git Push -f origin main。
就是这样。