所以我一直对本周在项目中做的最后3次提交表示遗憾。问题是我已经将它们推送到公共存储库,我怀疑至少有几个人已经将这些更改推迟了。
现在最安全的做法是撤消最近3次提交中的更改,不要对撤回这些更改的人提出任何申诉?
答案 0 :(得分:2)
最后这简单了:
git revert HEAD~3..HEAD
当我执行它时,它为我正在恢复的每个提交创建了一个新提交,撤消了它的更改。如果它能在一次提交中恢复所有内容会更好。但我觉得这很好。
答案 1 :(得分:0)
如果你想恢复到某个特定提交的状态,并且真的不想要一个显示它如何到达的恢复链,
newcommit=$(
git cat-file -p $thatcommit \
| sed '1,/^$/d;$a \
reverting to '$(git rev-parse $thatcommit) \
| git commit-tree -p HEAD $thatcommit^{tree}
)
branch=`git symbolic-ref -q --short HEAD`
git checkout ${branch:+-B $branch} $newcommit
将在您的分行提示,消息和所有内容(仅限新的日期/父母,以及最后的“还原”注释)中复制$thatcommit
。
答案 2 :(得分:0)
您只需要git reset --hard
提交您想要的提示,git push
(可能需要--force
非快进提交)结果。
但这意味着更改永远丢失。也许你应该在上面之前在尖端(git branch this-was-a-big-mistake
)创建一个新的分支,并推出两个分支......