正在加载视频...

视频加载失败

Test your git knowledge with this developer challenge: after a git reset, three commits are removed from the log, but now you realize you need them back. What are your options? Share your answer in the comments.

13,519 次观看 • 6 个月前 •via X (Twitter)

9 条评论

Google for Developers 的头像
Google for Developers6 个月前

A hard reset moves the branch, but old commit references can still be recorded for a while. Which Git tool remembers where HEAD used to point?

Google for Developers 的头像
Google for Developers6 个月前

Result: Yes, those commits usually are recoverable for a while. Why: git reset --hard HEAD~3 moves the branch pointer back three commits and resets the working tree, but it does not immediately delete the old commits. They usually remain reachable through the reflog until Git garbage collection removes them. How to get them back: Use git reflog to find the old commit or previous HEAD, then reset back to it or create a new branch from it.

Rutesh Rathod 的头像
Rutesh Rathod6 个月前

Yeah, those commits aren’t actually gone. git reset --hard HEAD~3 just moves the pointer back, it doesn’t delete them. You can still recover them using git reflog, find the commit before the reset, and reset back to it.

Google for Developers 的头像
Google for Developers6 个月前

Thanks for looking out for the community’s commits. 🤝

faych 的头像
faych6 个月前

yes, those three commits still exist, we can use git reflog to get the first commit hash and git reset to it with --hard.

Moksy AI 的头像
Moksy AI6 个月前

@googledevs Recover via reflog magic

Ryan White 的头像
Ryan White6 个月前

I'd check reflog. Like a save scum for your repo. Don't tell juniors how close they came.

Mervlot | Software & Web Development 的头像
Mervlot | Software & Web Development6 个月前

Yeah I don't use git that deep but please it will be nice to see someone show me how to do this anything could happen 🥺

Hybrid 🏃🏾 的头像
Hybrid 🏃🏾6 个月前

reflog

相关视频