Advanced Git Tutorial - Interactive Rebase, Cherry-Picking, Reflog, Submodules and more

  Переглядів 237,370

freeCodeCamp.org

freeCodeCamp.org

День тому

Git has so much more to offer than just "commit, pull, push"! Its advanced tools can help you become more productive and professional with your code base. We're going to look at concepts like Interactive Rebase, Cherry-Picking, and Submodules to get you one step closer on your journey to mastering Git!
✏️ 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:51) Hosted by Tower
⌨️ (01:23) Interactive Rebase
⌨️ (08:54) Cherry-Picking
⌨️ (12:10) Reflog
⌨️ (18:42) Submodules
⌨️ (29:30) Search & Find
⌨️ (33:26) The Advanced Git Kit: a collection of short videos about interesting Git topics like Submodules, Interactive Rebase, Cherry-Picking... free to download (www.bit.ly/advanced-git-kit)
🎉 Thanks to our Champion and Sponsor supporters:
👾 Raymond Odero
👾 Agustín Kussrow
👾 aldo ferretti
👾 Otis Morgan
👾 DeezMaster
--
Learn to code for free and get a developer job: www.freecodecamp.org
Read hundreds of articles on programming: freecodecamp.org/news

КОМЕНТАРІ: 120
@xcan8872
@xcan8872 2 роки тому
This is like an ASMR video for programmers
@ricardotrejoruiz5776
@ricardotrejoruiz5776 2 роки тому
thats true man, bring me a lot of piece knowing how can I save the day after the panic comes up jajaj
@marcello4258
@marcello4258 2 роки тому
@@ricardotrejoruiz5776 siiiiiii jajaja
@nathanyang3288
@nathanyang3288 Рік тому
LOL
@saqlainalvi5485
@saqlainalvi5485 Рік тому
@@marcello4258 siii jaja indeed
@khanfaizan05
@khanfaizan05 Місяць тому
So true😂😂
@sshanit
@sshanit 2 роки тому
Clear explanation with practical examples. Thank you!
@rionaldy
@rionaldy 2 роки тому
Nice video! The cherrypick command has definitely been a lifesaver for me a few times
@P0cketfull0fsunshine
@P0cketfull0fsunshine Рік тому
Fantastic video, really helped me out. The fact that Tobias sounds exactly like Christoph Waltz is the cherry on top
@orafasistemas
@orafasistemas Рік тому
Watched twice.... could not believe I've understood so easily... Thank you for sharing this content.
@sofiaborovskaia3714
@sofiaborovskaia3714 Рік тому
This was very helpful, so well explained. Thank you!
@devbites77
@devbites77 Рік тому
Wonderfully explained. Really clear and useful examples.
@marioestrada2233
@marioestrada2233 2 роки тому
This guy makes the best git tutorials!! Thanks tons!!!
@iAmTheWagon
@iAmTheWagon 2 роки тому
Exactly what I needed to see. Thank you so much.
@ahmedalhallag3338
@ahmedalhallag3338 2 роки тому
I was just revising these concepts. Thank you!
@philipoakley5498
@philipoakley5498 2 роки тому
You can push an updated history (see rebase warning) to a *personal fork*, and it's probably a good policy if it provides a local backup. Just make sure that, even if it's public to the team, that folks don't assume immutability of your fork's branch...
@RamsesYT
@RamsesYT Рік тому
This is a very educational video, Tobias, thanks from Amsterdam! 🎉😊
@OggVorbis69
@OggVorbis69 6 місяців тому
I really appreciate the videos on this channel. Big fan, love to try the problems and then come here to see did we come up with the same solution.
@jithintc4200
@jithintc4200 2 роки тому
I was actually looking for a good git course. Thank you !
@nechetv6268
@nechetv6268 2 роки тому
@freecodecamp Please I registered online but I have a question do you guy have a student group chat please, I what to join
@rohantaneja
@rohantaneja 2 роки тому
Great content! So polished 👌🏼
@BeingHumanInSouthAfrica
@BeingHumanInSouthAfrica 2 роки тому
I love the merging of commits, especially when one is doing a long term development and then needs to cherry pick to the develop branch. One can do all the merges on the branch and then the Merge Master Person can do the merge to develop or Master branches. I love software development, because it is so safe and easy to have a happy-ending. I had a good laugh. Thanks.
@Winter_Wyvern1
@Winter_Wyvern1 Рік тому
what
@Winter_Wyvern1
@Winter_Wyvern1 Рік тому
nevermind, watched the video and got it 🤣
@kishr4u1
@kishr4u1 2 роки тому
good one to learn and refresh some advanced concepts with decent practical examples.. better try it as he explains
@HaouasLeDocteur
@HaouasLeDocteur Рік тому
such a wonderful instructor.
@osvaldoaguilarlauzurique8025
@osvaldoaguilarlauzurique8025 2 роки тому
Best git video on internet, thank you so much.
@nneddenn6207
@nneddenn6207 4 місяці тому
Thanks guys, it was really helpful and informative! Really nice content!
@behruzisaev2102
@behruzisaev2102 Рік тому
Very well explained. Thanks a ton!
@ahmadhassan8560
@ahmadhassan8560 7 місяців тому
great stuff, really appreciate the content.
@hamedsedaghat965
@hamedsedaghat965 2 роки тому
That was very usful and also easy to understand thank you a million
@yonatankaplonov9616
@yonatankaplonov9616 9 місяців тому
best video I've seen so far thank you!
@navyapramod5612
@navyapramod5612 Рік тому
One of the best git tutorials
@ShahzadAli-fr1uy
@ShahzadAli-fr1uy 2 роки тому
This is really helpful content, Thank you!
@madhousenetwork7765
@madhousenetwork7765 2 роки тому
Thank you for this. this is too good
@BBuckB
@BBuckB 2 роки тому
Awesome content! Thank you!
@diegocl02
@diegocl02 2 роки тому
This is really helpful, thanks!
@PradeepSamuelRocks
@PradeepSamuelRocks 6 місяців тому
Very well explained !! Thank you !!
@senkogaming4784
@senkogaming4784 2 роки тому
Really great video! I've learned ton of things on this channel. Also his voice makes it more relaxing and understandable. It would be nice if you did a Python's AsyncIO-related course though. I'm sure enough that a lot of people will find it helpful.
@TheMsksk
@TheMsksk 2 роки тому
It certainly would be!
@kovid.rathee
@kovid.rathee Рік тому
This is fantastic!
@nadeemahmed7947
@nadeemahmed7947 2 роки тому
thank you so much it's very helpful, I learn a lot from this video
@HoangTMOFFICIAL
@HoangTMOFFICIAL Рік тому
Very well explained. Thanks
@thesavithaheshanoffi
@thesavithaheshanoffi 2 роки тому
the best channel i found in whole yt
@cw3dv
@cw3dv 2 роки тому
damn!! this is soooo coool!! very helpful, thank u so much ☺
@archananegi9647
@archananegi9647 Рік тому
Best git learning video ever.I am wondering why couldn’t I watch this earlier
@khomo12
@khomo12 5 місяців тому
Very, very good!!👍👍Thank you!
@prathameshsagvekar6696
@prathameshsagvekar6696 2 роки тому
thanks again, tried all the concept. #thankyou. (still have some doubts on submodule)
@alikaraki4929
@alikaraki4929 Рік тому
what a great video! thank you
@tech-wandeveloper7495
@tech-wandeveloper7495 2 роки тому
Nice, thank you!
@tuananhtran4544
@tuananhtran4544 2 роки тому
thank u for this good course
@bestchoice7431
@bestchoice7431 9 місяців тому
Very well explained.
@amortalbeing
@amortalbeing Рік тому
This was great thanks.
@ks.749
@ks.749 2 роки тому
Thank you so much Mr.jobs
@MrStarcraftangle
@MrStarcraftangle Рік тому
I find REFLOG very useful. TIL. Thanks!
@andygr1n1
@andygr1n1 2 роки тому
Thank you, very useful
@dunezoop
@dunezoop Рік тому
Thanks Cristoph Waltz!
@trianglesupreme
@trianglesupreme 2 роки тому
I suggest to use *gitk* side by side while following the tutorial to understand the things in-depth.
@qiweiliu5410
@qiweiliu5410 Рік тому
it is really amazing that git reflog can undo git reset
@jose6183
@jose6183 2 роки тому
Your accent reminds me of Christoph Waltz. Very cool video, thank you!
@ujjawal6660
@ujjawal6660 2 роки тому
Thank you!!!!
@usmanpervaiz2043
@usmanpervaiz2043 6 місяців тому
Really Great Video 🚀
@javascript_developer
@javascript_developer Рік тому
awesome. Thanks
@lakhveerchahal
@lakhveerchahal Рік тому
That's very helpful
@mycollegeLife.
@mycollegeLife. 3 місяці тому
This man is founder of TOWER.
@yehudacorsia3323
@yehudacorsia3323 Рік тому
Thanks!
@And1997Ruz
@And1997Ruz 10 місяців тому
Great content, just the interactive rebase by itself would've been enough to make a great video. But wait, there's more?... Really good stuff
@braintrainer1549
@braintrainer1549 2 роки тому
good content nicely presented
@peterhyperaung
@peterhyperaung 2 роки тому
wow GOTTA learn this too! -,-
@greenzzlia822
@greenzzlia822 7 днів тому
Thanks a lot! at 26:00 What is --recursive tag for? and do we do the same just without --init for next times that we want to pull submodules?
@alberteinstein7231
@alberteinstein7231 2 роки тому
thank you
@user-dn7yl7ms1u
@user-dn7yl7ms1u 6 місяців тому
So at the point where squash was used (8:18) instead of deleting the two messages writing one above them is the way to create on single message? Because according to the instructions anything not starting with '#' will remain?
@knutblaise9437
@knutblaise9437 2 роки тому
Do you have any videos or resources on Linux distro repositories? I'd like to understand how access control and the documenting of code reviews for Linux distro repositories is handled before moving to Linux.
@istvan368
@istvan368 2 роки тому
thanks a lot :)
@gopsda
@gopsda 2 роки тому
Thanks for the demo git session. Very informative. @7:50, I noticed that you wanted to combine 3rd and 4th, instead combined 2nd and 3rd. it doesn't matter as this is a demo to show how to combine two commits. just an observation...
@DavidLindes
@DavidLindes 2 роки тому
Hmm, I don't think you're correct here? It seems to me that this combined 2b504be (was HEAD~3, "Change headlines...") with eb972b4 (was HEAD~2, "Optimize...") into 59505fd (new commit, newly HEAD~2, "Combine..."), which is followed by 4376d4d (nee 2d42208, aka HEAD~1 in both trees, "Change the page...") and _ (nee ce22112, aka HEAD in both, "Improve headline..."). Which matches 6:51 (though I could see potential confusion in the opposite direction from cursor position at 6:48...).... ?
@gopsda
@gopsda 2 роки тому
@@DavidLindes Sorry, my bad. I was looking at the lines only. I noticed that these lines are listed in the reverse order in the git log --oneline, with Headline appearing first. Thanks for correcting me. It makes sense now.
@DavidLindes
@DavidLindes 2 роки тому
@@gopsda Ah, yeah, they do show up in opposite order between those two views, so that makes sense! And, gladly done. I'm glad it landed well. Thanks for the response.
@rodrigodiazf2147
@rodrigodiazf2147 2 роки тому
thank you alot
@navedshaikh8375
@navedshaikh8375 Рік тому
Great explanation with live examples, everyone please hit like on this video and comment
@vijaykanth9980
@vijaykanth9980 2 роки тому
Hi sir, please do a full video on Azure Terrafrom
@rasoihamariorapki4867
@rasoihamariorapki4867 2 роки тому
That is good
@pol165
@pol165 2 роки тому
This channel should actually be the most pupular education channel. I feel like people spend a lot of time watching stupid videos on youtube like some populare gamers or idk. If they spend the time learning something good, they will actually get new skills
@LordSplynter
@LordSplynter 2 роки тому
Like my stats teacher told me, "you can know how to program in every single programming language, but if you dont know Git and how to use it, you are screwed"
@DyslexicMitochondria
@DyslexicMitochondria 2 роки тому
Yupppp
@tomhappening
@tomhappening 2 роки тому
@@DyslexicMitochondria your username made me click on your profile. Your channel is a hidden gem bro
@azir8930
@azir8930 Рік тому
❤‍🔥
@ijazali9736
@ijazali9736 2 роки тому
Can we directly push our project code to our server and update it there, instead of pushing it github and then updating from there? Thanks
@declanmcardle
@declanmcardle 2 роки тому
In the first section #1. This is on a local branch? Not master/main? Can you "reword" a commit message on something already merged to master/main? [I'll watch the rest first...]
@nikoman71326
@nikoman71326 10 місяців тому
what if the editor window is not popping up after git rebase -i HEAD~2? content opens in the terminal where it is uneditable. Thanks
@source8093
@source8093 2 роки тому
How about configurating apache with php/js/etc?
@Aba9846
@Aba9846 2 роки тому
A bit too late for me, had to implement cherry picking earlier today for the first time lol
@TorreyBraman
@TorreyBraman 2 роки тому
I
@dj_mk_crazy
@dj_mk_crazy Місяць тому
26:03 I typed `git submodule update --init --recursive` on the same cloned repo but nothing happened. Actually nothing happens if I type any submodule command. Also, the `--recurse-submodules` clone option does not update the submodules neither... What am I missing? 🤔
@atchutram9894
@atchutram9894 3 місяці тому
At 2:41 he says, 'Do NOT use Interactive Rebase on commits that you've already pushed/shared to a remote repository'. But subsequently, he goes ahead to change the commits that are in 'origin' repo. What am I missing?
@frayy5953
@frayy5953 2 роки тому
Hey, just want to ask… Should i download ubuntu terminal for windows or should i use powershell terminal?
@zereko8638
@zereko8638 2 роки тому
ubuntu terminal
@senkogaming4784
@senkogaming4784 2 роки тому
whatever works for you, if you don't really care about padding, fonts and colors, then stick with what you are already with. Although I think that Windows already has a GUI if you ever want to tweak something.
@AshrafMMA
@AshrafMMA 2 роки тому
👌
@tsdineshjai8565
@tsdineshjai8565 Рік тому
Someone kindly let me know how to go back to screen after we change the pick to reword/squash in gitbash. I am trying to press enter as mentioned in the tutorial, its not working for me.
@ricardotrejoruiz5776
@ricardotrejoruiz5776 2 роки тому
awsome, biutiful
@dark9615
@dark9615 2 роки тому
YOU ALL ARE GODS.............
@Neolisk
@Neolisk 2 роки тому
That's why you always create a new branch before reset.
@bhagyalakshmi1053
@bhagyalakshmi1053 Рік тому
Letter also small I will collect in further laptop and TV
@animarain
@animarain 5 місяців тому
It's funny that half the commands of git are not there for every day use but for those "oops, I f*cked up" moments. 😛
@vladimirfokow6420
@vladimirfokow6420 9 місяців тому
👍
@gouravnainwaya5669
@gouravnainwaya5669 2 роки тому
Bro make react native
@pfbrodriguez
@pfbrodriguez Рік тому
if you are the reflog creator, I owe you a beer
@technomad9071
@technomad9071 Місяць тому
no linux verison of tower :(
@hazartilirot1014
@hazartilirot1014 2 роки тому
Well, I liked the video though Tobias could've provided a repo so that people would clone it and put their hands-on practising with examples. It's easier to remember when you work yourself.
@erikawwad7653
@erikawwad7653 2 роки тому
just remember the use case and google it. he was very kind to use his time to educate
@hazartilirot1014
@hazartilirot1014 2 роки тому
@@erikawwad7653 Oh dear, I thought he was advertising Tower in a channel with 4,5 million subscribers. Thank you for clarifying. He's indeed! Dunno how others... I need to repeat a dozen of times before it instils in my memory. Better if there are numerous examples. Hopefully I've got Mosh's course and raywenderlich books. Practice makes perfect. ;)
@Apprenticer
@Apprenticer Рік тому
Happy-ending
@angularlearner9409
@angularlearner9409 9 місяців тому
git log oneline what head~1 bla ... this makes quite a few assumptions about prior knowledge of commands
@jpandlexiwilliams1838
@jpandlexiwilliams1838 2 роки тому
First
@jairciezadiaz7456
@jairciezadiaz7456 2 роки тому
A
@tokoanyar8787
@tokoanyar8787 2 роки тому
Steve Jobs
@nitishkumarjha7726
@nitishkumarjha7726 Рік тому
Thanks!
Git Branching and Merging - Detailed Tutorial
54:28
SuperSimpleDev
Переглядів 167 тис.
How to Undo Mistakes With Git Using the Command Line
55:21
freeCodeCamp.org
Переглядів 79 тис.
You might not need useEffect() ...
21:45
Academind
Переглядів 109 тис.
13 Advanced (but useful) Git Techniques and Shortcuts
8:07
Fireship
Переглядів 872 тис.
Git MERGE vs REBASE: The Definitive Guide
9:39
The Modern Coder
Переглядів 42 тис.
How GIT works under the HOOD?
16:01
Tech With Nikola
Переглядів 179 тис.
Git Tutorial For Dummies
19:25
Nick White
Переглядів 935 тис.
So You Think You Know Git - FOSDEM 2024
47:00
GitButler
Переглядів 844 тис.
Git MERGE vs REBASE
16:12
Academind
Переглядів 1 млн
Learn Git Rebase in 6 minutes // explained with live animations!
6:43
The Modern Coder
Переглядів 742 тис.
10 Must Know Git Commands That Almost Nobody Knows
15:22
Web Dev Simplified
Переглядів 93 тис.