How to Undo Mistakes With Git Using the Command Line

  Переглядів 80,414

freeCodeCamp.org

freeCodeCamp.org

День тому

Git offers lots of different ways to undo, revert, recover and fix your mistakes. In this course, we'll look at the bad things that can happen to you - and how Git can save your neck.
✏️ This course was created by Tobias Günther from Tower. Tower creates a powerful Git desktop GUI for Mac and Windows. You can download it here: www.git-tower.com
Note: This course focuses on using Git with the command line. You do not need Tower or any other GUI software to follow along.
⭐️ Course Contents ⭐️
⌨️ (00:00) Introduction
⌨️ (00:54) Hosted by Tower
⌨️ (01:29) Git as your safety net
⌨️ (02:50) Discard all local changes in a file
⌨️ (04:28) Please be careful: discarding local changes cannot be undone!
⌨️ (05:03) Restoring deleted files
⌨️ (06:10) Discard chunks / lines in a file
⌨️ (10:22) Discarding all local changes
⌨️ (11:42) Fixing the last commit
⌨️ (14:53) What "rewriting history" means
⌨️ (15:54) Reverting a commit in the middle
⌨️ (18:48) Resetting to an old revision
⌨️ (21:48) Resetting a file to an old revision
⌨️ (23:59) The Reflog
⌨️ (24:38) Recovering deleted commits
⌨️ (27:46) Recovering deleted branches
⌨️ (31:22) Moving a commit to a new branch
⌨️ (33:55) Moving a commit to a different branch
⌨️ (35:57) Interactive Rebase: an overview of what you can do
⌨️ (37:54) Interactive Rebase: how it works in general
⌨️ (38:36) Editing old commit messages with Interactive Rebase
⌨️ (41:29) Deleting commits with Interactive Rebase
⌨️ (43:20) Squashing multiple commits into one with Interactive Rebase
⌨️ (46:00) Adding changes to an old commit with Interactive Rebase
⌨️ (51:54) Splitting/editing an old commit with Interactive Rebase
⌨️ (54:01) Reminder: don't rewrite commits that you have already shared!
⌨️ (54:38) First Aid Kit for Git: a set of short videos and a cheat sheet, free to download (www.bit.ly/git-first-aid-kit)
⭐️ Special thanks to our Champion supporters! ⭐️
🏆 Loc Do
🏆 Joseph C
🏆 DeezMaster
--
Learn to code for free and get a developer job: www.freecodecamp.org
Read hundreds of articles on programming: freecodecamp.org/news

КОМЕНТАРІ: 80
@saishashank1000
@saishashank1000 3 роки тому
I wished I could undo mistakes that I made in my life by using git :’)
@thengakola6217
@thengakola6217 3 роки тому
F
@bishnukumarbhakat4892
@bishnukumarbhakat4892 3 роки тому
Yes! you can, by following up DRY principle.
@ms711x
@ms711x 3 роки тому
You can but you need admin privileges.
@Arun-bz4jr
@Arun-bz4jr 3 роки тому
do it better next time, do not "commit" more mistakes :-)
@harshadpandit5483
@harshadpandit5483 Рік тому
Probably the most important topic on GIT explained in the most simplest way. Awesome.
@angelajholden
@angelajholden 3 роки тому
This video saved me! About 2 weeks ago I deleted a commit and tried everything to could think to get it back. Discovering git reflog, then resetting or creating a new branch from that commit is exactly what I needed. And voilà, all work restored after many sleepless nights. THANK YOU SO MUCH!
@dolusdirectu
@dolusdirectu 2 роки тому
Wow, amazing tutorial. After reading the git documentation I was really confused about some topics but this lesson made it clear to me. I really appreciate it thx for the great content.
@gubazoltan99
@gubazoltan99 3 роки тому
Immediately added this video to my favourites. Thanks for the clear explanation!
@moai545
@moai545 3 роки тому
Thank you for giving me a very detailed and very easy-to-understand explanation!!! RESPECT!!! 🙏
@bishnukumarbhakat4892
@bishnukumarbhakat4892 3 роки тому
Thank you for this drive, really it was an awesome tour to stack up the real base of "git".
@dlopezlo
@dlopezlo 3 роки тому
thanks for the course and for making it freely available.
@moali2990
@moali2990 Рік тому
Not exaggerating, you are a gift from heaven, currently having problems with bad merges with master branch. This is helping me alot
@rafaelmrantunes
@rafaelmrantunes Рік тому
That's a must-see for sure. Thanks for the content. Valuable af
@josearevalo3817
@josearevalo3817 3 роки тому
The video is in my the top 10! Thanks! 👍🏼
@treequin
@treequin 11 місяців тому
Very good tutorial! Learned quite a few things watching it. Thanks for making it!
@je9625
@je9625 26 днів тому
I have no idea why it took me three years to come across this video. It's a gem 🎉
@davidtang1828
@davidtang1828 3 роки тому
This was awesome. Thank you! Definitely will be checking out Tower now lol.
@ventin75
@ventin75 9 місяців тому
Great video. I like how you presented the use cases.
@dipenparmar2273
@dipenparmar2273 3 роки тому
Excellent job, Great for experts as well beginners....
@mei2508
@mei2508 3 роки тому
Exactly what I need!TY
@JeanCarlos-km3vz
@JeanCarlos-km3vz 3 роки тому
Great explanation! Boom! Not panic anymore!
@babalolajnr
@babalolajnr 3 роки тому
Nice. Been looking for this forever
@ozzy9846
@ozzy9846 3 роки тому
Git is such an amazing tool!
@ashaalex
@ashaalex 3 роки тому
Very well explained.. Thank you very much
@compScientizt
@compScientizt 2 роки тому
You are awesome indeed. thanks alot!😍🙏 Thanks for providing such a crucial knowledge for free.
@bouamarelouahhabi9525
@bouamarelouahhabi9525 3 роки тому
I remember your voice from gitower tutorials :), thanks for the good job!
@JasonHuebel
@JasonHuebel 3 роки тому
Great information. Thanks for sharing.
@cyril7104
@cyril7104 3 роки тому
The most usefull lesson, big thx!
@sanskaarpatni9137
@sanskaarpatni9137 3 роки тому
This video is so goood! Important stuff af: I had seen the video when it came out.. But yesterday when I ran into a problem I realized I should see this video again properly
@muhammadtalhabaig1725
@muhammadtalhabaig1725 11 місяців тому
Thank you bro!
@humayunakhtar2116
@humayunakhtar2116 3 роки тому
Oh Man I'm so happy to learn multiple things in this video
@Dgiulian
@Dgiulian 3 роки тому
Another good tip is when we have worked on a file but want to commit only parts of it, we can use the -p option to decide which lines should and shouldn't be staged.
@captainalpha4853
@captainalpha4853 6 місяців тому
Thanks for the tip!
@michaeltarassov940
@michaeltarassov940 3 роки тому
Thanks a lot, it was great!
@blasttrash
@blasttrash 3 роки тому
awesome tutorial
@PedroMartins-mz3bl
@PedroMartins-mz3bl Місяць тому
Awesome video. Very gut explained and very helpfull tools. Thank you
@privatename3621
@privatename3621 Рік тому
Fantastic video. And very comprehensive. Only thing is that you never gave the CLI commands for the last exercise, "Splitting / Editing and Old Commit." I took good notes on everything else. Thanks for this post.
@jcavelez
@jcavelez 3 роки тому
Genial. Muchas gracias.
@orafasistemas
@orafasistemas Рік тому
Thank you.
@user-sg2ft8gf9e
@user-sg2ft8gf9e 4 місяці тому
Helpful sir thanks
@buttnomaan
@buttnomaan 2 роки тому
great video
@shubhamdandekar20
@shubhamdandekar20 3 роки тому
Useful one.
@freecodecamp
@freecodecamp 3 роки тому
If you are brand new to git, start with this video: ukposts.info/have/v-deo/ineAnmuwf22W158.html
@hajarelmajid6842
@hajarelmajid6842 3 роки тому
I've read it as how to do mistakes with Git and even with that I clicked never have blindly trust a channel like that!
@mustafaaljanabi4818
@mustafaaljanabi4818 3 роки тому
please I want a full course talks about HTML, CSS, and JS all of them are standard version like not html5 or css3 or something. Thanks!
@JasonHuebel
@JasonHuebel 3 роки тому
11:30 That's my biggest concern, git restore doesn't ask for confirmation. While I'm OK with that in other cases, when you are discarding changes, I feel like git should err on the side of caution.
@afrobear2310
@afrobear2310 3 роки тому
never been so late !!!!
@Megaheropap
@Megaheropap 3 роки тому
Yes
@ninjababy1997
@ninjababy1997 3 роки тому
Really good video. On git restore -p enter "?" and git will show you the following: y - discard this hunk from worktree n - do not discard this hunk from worktree q - quit; do not discard this hunk or any of the remaining ones a - discard this hunk and all later hunks in the file d - do not discard this hunk or any of the later hunks in the file s - split the current hunk into smaller hunks e - manually edit the current hunk ? - print help
@zain.sadaqat
@zain.sadaqat 2 роки тому
Nobody covered these git commands before. Thanks a lot! Can someone please tell me what are the commands for case # 17 at 54:01
@greob
@greob 3 роки тому
Git Tower looks nice, but it's not available for GNU/Linux, so I'll stick with command line.
@iliyalb
@iliyalb 3 роки тому
Use GitKraken
@amitkumarjena3184
@amitkumarjena3184 3 роки тому
Voila!
@AmitBiswastunebox
@AmitBiswastunebox Рік тому
Here is the scenario, I created a branch from "develop" branch, then I created my PR against "develop". Code reviewer reviewed and Approved. Then I merged my branch (PR) with with "develop". I have have couple changes for example , commit A, B, C. so on. I just don't want changed " commit B". How to undo that form the merged PR and "develop" branch should nor have that "commit B"
@DragonStoneCreations
@DragonStoneCreations 3 роки тому
❤️
@harryjohn6736
@harryjohn6736 11 місяців тому
Please provide link to your complete course.
@candi2Love
@candi2Love 3 роки тому
How many 'CTRL Z' is allowed in Tower?
@mohitjoc25
@mohitjoc25 3 роки тому
Make advance full course on c++ with project
@bestchoice7431
@bestchoice7431 9 місяців тому
git restore . command do not work for deleting the untracked or unstaged files. Can we use git clean -fdx ?
@chikaonyema2522
@chikaonyema2522 3 роки тому
Wow
@imkir4n
@imkir4n 3 роки тому
Im bsc cs student and its project time...could you please mention some projects with tutorials bcs many project centers approach me with expensive fees...i can't afford it...help me guys
@ashirwadsharma5462
@ashirwadsharma5462 2 роки тому
git restore is not finding as a command. What would be problem??
@KrishnaKumar-ks3mj
@KrishnaKumar-ks3mj 3 місяці тому
The one I was looking for a while, which resolves all the doubts so professionally :)
@ankurgupta5976
@ankurgupta5976 3 роки тому
This is a missing guide of my git journey.
@nordicnomad5473
@nordicnomad5473 Рік тому
🎉
@OfficialOceaneMusic
@OfficialOceaneMusic 3 роки тому
Question: 1)when you squash two commit into one is it ok to delete the parents of that new commit
@sakshamkshatri9649
@sakshamkshatri9649 3 роки тому
Never been sooooo early!!
@RTX_valorant
@RTX_valorant 3 роки тому
hi freecodecamp is it possible can we get ppt?
@konstantinrebrov675
@konstantinrebrov675 3 роки тому
A like for a comprehensive overview of all the different possible things one can do in git to fix your mistakes. But a dislike for using a GUI tool almost half of the time. You should have used git status and git log to find information about the commit history. And you also used the GUI tool to checkout different branches, and even do cherry-pick! I'm not necessarily against using GUI tools, but the title of your video is "How to Undo Mistakes With Git Using the Command Line ". It implies that you will not use any GUI tools, only Using the Command Line! If instead you would have used Command Line ONLY and not used the GUI tool, it would have made explaining the actual git commands better. I think that using the GUI tool is less clear about what is actually going on. It is better to use the actual Command Line to explain how git works, especially since that's the title of your video!
@vietnamneko611
@vietnamneko611 3 роки тому
my parents:
@thecscontent5110
@thecscontent5110 3 роки тому
I also do videos about programming!😁
@richardbajuzik2445
@richardbajuzik2445 3 роки тому
Just use SmartGIT :D
@pppluronwrj
@pppluronwrj 3 роки тому
delete folder then clone again
@eniluck5071
@eniluck5071 3 роки тому
Use RAR instead....
@anubhavmukherjee3488
@anubhavmukherjee3488 3 роки тому
Second
@user-cz7xe1xg5d
@user-cz7xe1xg5d 2 роки тому
$ git restore .
@brunoribaric9683
@brunoribaric9683 3 роки тому
"Using the command line" is an unnecessary addition to the title, given that a quite relevant portion of the video shows off his GUI tool.
@sujithkumar824
@sujithkumar824 3 роки тому
This is why I hate people, the entire video is free, it shows everything how to do as it claims using CLI, but you still had to comment to spread negativity somehow and pointed him showing his GUI tool to make the unrelated parts faster.
@thatinstant
@thatinstant 2 місяці тому
This video is good, but not great. What would make this video great is not shamelessly promoting that GUI app and sticking to demonstrating all scenarios with the commandline, just as the title of this video suggests. The presenter gets lazy by scenario #11 and doesn't demonstrate the commandline tasks, and only shows a summary of the commands at the end of the scenario. This is the problem with GUI apps, they make you lazy.
How to be a git expert
46:26
Floating Little Leaves of Code
Переглядів 139 тис.
Git Branching and Merging - Detailed Tutorial
54:28
SuperSimpleDev
Переглядів 171 тис.
ФОКУС С ЧИПСАМИ (секрет)
00:44
Masomka
Переглядів 3,7 млн
10 Minutes To Escape Or This Room Explodes!
10:00
MrBeast
Переглядів 64 млн
Git MERGE vs REBASE: The Definitive Guide
9:39
The Modern Coder
Переглядів 45 тис.
Git Tutorial For Dummies
19:25
Nick White
Переглядів 955 тис.
How GIT works under the HOOD?
16:01
Tech With Nikola
Переглядів 181 тис.
How to Get a Developer Job - Even in This Economy [Full Course]
3:59:46
freeCodeCamp.org
Переглядів 1,5 млн
Big Tech AI Is A Lie
16:56
Tina Huang
Переглядів 31 тис.
So You Think You Know Git - FOSDEM 2024
47:00
GitButler
Переглядів 880 тис.
Machine Learning for Everybody - Full Course
3:53:53
freeCodeCamp.org
Переглядів 4,9 млн
NestJs Course for Beginners - Create a REST API
3:42:09
freeCodeCamp.org
Переглядів 1 млн
13 Advanced (but useful) Git Techniques and Shortcuts
8:07
Fireship
Переглядів 876 тис.
Something Strange Happens When You Follow Einstein's Math
37:03
Veritasium
Переглядів 4,2 млн