您可以使用git revert
来撤销特定提交的影响,并创建一个撤销更改的新提交。
在这种情况下
git revert 797832c
将自动创建一个提交,其中包含已反转的更改。
cartitems.blade.php
文件(不是整个提交)时,你可以检出 "坏" 提交之前的文件版本:git checkout 41123f6 -- resources/views/cart/cartitems.blade.php
git add resources/views/cart/cartitems.blade.php
git commit -m "Revert cartitems.blade.php"
这样就不必重写历史记录了。我不确定是否可以在SourceTree GUI中实现此操作。您可以使用SourceTree右上角的"Terminal"按钮打开终端。
就像完全消除最后一次提交,让它好像从未发生过一样?
假设更改已经在您的主分支上:
git checkout master
git reset --hard HEAD~1
git push origin master
这应该就足够了。
最好创建一个具有特定提交的新分支,并发送一个PR到你需要的分支,因为旧分支中有旧更改以及你的新分支中的新还原更改。
git checkout -b fix/revert-change 7978732
然后使用 git push
将新分支推送到远程
git push -f origin master
, 顺带一提... 如果你不加上 -f 参数的话,git 会抱怨,因为 origin/master 已经超过了你现在尝试放置分支的点。 - undefined