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

Поділитися
Вставка
  • Опубліковано 8 лип 2024
  • 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

КОМЕНТАРІ • 122

  • @xcan8872
    @xcan8872 2 роки тому +146

    This is like an ASMR video for programmers

  • @sshanit
    @sshanit 2 роки тому +23

    Clear explanation with practical examples. Thank you!

  • @BeingHumanInSouthAfrica
    @BeingHumanInSouthAfrica 2 роки тому +7

    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.

  • @P0cketfull0fsunshine
    @P0cketfull0fsunshine 2 роки тому +4

    Fantastic video, really helped me out. The fact that Tobias sounds exactly like Christoph Waltz is the cherry on top

  • @rionaldy
    @rionaldy 2 роки тому +6

    Nice video! The cherrypick command has definitely been a lifesaver for me a few times

  • @marioestrada2233
    @marioestrada2233 2 роки тому

    This guy makes the best git tutorials!! Thanks tons!!!

  • @osvaldoaguilarlauzurique8025
    @osvaldoaguilarlauzurique8025 2 роки тому

    Best git video on internet, thank you so much.

  • @HaouasLeDocteur
    @HaouasLeDocteur Рік тому +3

    such a wonderful instructor.

  • @devbites77
    @devbites77 Рік тому +2

    Wonderfully explained. Really clear and useful examples.

  • @iAmTheWagon
    @iAmTheWagon 2 роки тому +1

    Exactly what I needed to see. Thank you so much.

  • @philipoakley5498
    @philipoakley5498 2 роки тому +1

    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...

  • @navyapramod5612
    @navyapramod5612 2 роки тому

    One of the best git tutorials

  • @sofiaborovskaia3714
    @sofiaborovskaia3714 Рік тому +1

    This was very helpful, so well explained. Thank you!

  • @ahmedalhallag3338
    @ahmedalhallag3338 2 роки тому

    I was just revising these concepts. Thank you!

  • @RamsesYT
    @RamsesYT Рік тому

    This is a very educational video, Tobias, thanks from Amsterdam! 🎉😊

  • @yonatankaplonov9616
    @yonatankaplonov9616 11 місяців тому

    best video I've seen so far thank you!

  • @kishr4u1
    @kishr4u1 2 роки тому

    good one to learn and refresh some advanced concepts with decent practical examples.. better try it as he explains

  • @behruzisaev2102
    @behruzisaev2102 Рік тому

    Very well explained. Thanks a ton!

  • @jithintc4200
    @jithintc4200 2 роки тому +29

    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 👌🏼

  • @orafasistemas
    @orafasistemas Рік тому +1

    Watched twice.... could not believe I've understood so easily... Thank you for sharing this content.

  • @OggVorbis69
    @OggVorbis69 8 місяців тому

    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.

  • @thesavithaheshanoffi
    @thesavithaheshanoffi 2 роки тому +1

    the best channel i found in whole yt

  • @nneddenn6207
    @nneddenn6207 7 місяців тому

    Thanks guys, it was really helpful and informative! Really nice content!

  • @hamedsedaghat965
    @hamedsedaghat965 2 роки тому

    That was very usful and also easy to understand thank you a million

  • @PradeepSamuelRocks
    @PradeepSamuelRocks 8 місяців тому

    Very well explained !! Thank you !!

  • @archananegi9647
    @archananegi9647 Рік тому

    Best git learning video ever.I am wondering why couldn’t I watch this earlier

  • @BBuckB
    @BBuckB 2 роки тому

    Awesome content! Thank you!

  • @ShahzadAli-fr1uy
    @ShahzadAli-fr1uy 2 роки тому

    This is really helpful content, Thank you!

  • @HoangTMOFFICIAL
    @HoangTMOFFICIAL Рік тому

    Very well explained. Thanks

  • @diegocl02
    @diegocl02 2 роки тому

    This is really helpful, thanks!

  • @kovid.rathee
    @kovid.rathee 2 роки тому

    This is fantastic!

  • @khomo12
    @khomo12 7 місяців тому

    Very, very good!!👍👍Thank you!

  • @ahmadhassan8560
    @ahmadhassan8560 10 місяців тому

    great stuff, really appreciate the content.

  • @madhousenetwork
    @madhousenetwork 2 роки тому

    Thank you for this. this is too good

  • @bestchoice7431
    @bestchoice7431 11 місяців тому

    Very well explained.

  • @ks.749
    @ks.749 2 роки тому

    Thank you so much Mr.jobs

  • @tech-wandeveloper7495
    @tech-wandeveloper7495 2 роки тому

    Nice, thank you!

  • @dunezoop
    @dunezoop 2 роки тому

    Thanks Cristoph Waltz!

  • @alikaraki4929
    @alikaraki4929 Рік тому

    what a great video! thank you

  • @mumk
    @mumk 2 місяці тому

    interactive rebase is so cool

  • @andygr1n1
    @andygr1n1 2 роки тому

    Thank you, very useful

  • @amortalbeing
    @amortalbeing Рік тому

    This was great thanks.

  • @nadeemahmed7947
    @nadeemahmed7947 2 роки тому

    thank you so much it's very helpful, I learn a lot from this video

  • @cw3dv
    @cw3dv 2 роки тому

    damn!! this is soooo coool!! very helpful, thank u so much ☺

  • @usmanpervaiz2043
    @usmanpervaiz2043 8 місяців тому

    Really Great Video 🚀

  • @javascript_developer
    @javascript_developer Рік тому

    awesome. Thanks

  • @tuananhtran4544
    @tuananhtran4544 2 роки тому

    thank u for this good course

  • @MrStarcraftangle
    @MrStarcraftangle Рік тому

    I find REFLOG very useful. TIL. Thanks!

  • @qiweiliu5410
    @qiweiliu5410 2 роки тому

    it is really amazing that git reflog can undo git reset

  • @yehudacorsia3323
    @yehudacorsia3323 Рік тому

    Thanks!

  • @Whatever0704
    @Whatever0704 Місяць тому

    I would also mention one very important feature of rebase... that you are re-basing your feature branch on the latest/tip from the master branch. This can avoid many merge conflicts.
    I would very often pull, rebase, validate my code, squash and merge

  • @senkogaming4784
    @senkogaming4784 2 роки тому +6

    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!

  • @peterhyperaung
    @peterhyperaung 2 роки тому

    wow GOTTA learn this too! -,-

  • @ujjawal6660
    @ujjawal6660 2 роки тому

    Thank you!!!!

  • @trianglesupreme
    @trianglesupreme 2 роки тому +1

    I suggest to use *gitk* side by side while following the tutorial to understand the things in-depth.

  • @lakhveerchahal
    @lakhveerchahal Рік тому

    That's very helpful

  • @alberteinstein7231
    @alberteinstein7231 2 роки тому

    thank you

  • @prathameshsagvekar6696
    @prathameshsagvekar6696 2 роки тому +1

    thanks again, tried all the concept. #thankyou. (still have some doubts on submodule)

  • @JagdeepSing49
    @JagdeepSing49 2 роки тому

    good content nicely presented

  • @jose6183
    @jose6183 2 роки тому +1

    Your accent reminds me of Christoph Waltz. Very cool video, thank you!

  • @istvan368
    @istvan368 2 роки тому

    thanks a lot :)

  • @rodrigodiazf2147
    @rodrigodiazf2147 2 роки тому

    thank you alot

  • @navedshaikh8375
    @navedshaikh8375 Рік тому

    Great explanation with live examples, everyone please hit like on this video and comment

  • @mycollegeLife.
    @mycollegeLife. 6 місяців тому

    This man is founder of TOWER.

  • @And1997Ruz
    @And1997Ruz Рік тому +1

    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

  • @rasoihamariorapki4867
    @rasoihamariorapki4867 2 роки тому

    That is good

  • @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.

  • @vijaykanth9980
    @vijaykanth9980 2 роки тому

    Hi sir, please do a full video on Azure Terrafrom

  • @TorreyBraman
    @TorreyBraman 2 роки тому

    I

  • @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 роки тому +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 роки тому +1

      @@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.

  • @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

  • @CBMM_
    @CBMM_ 2 місяці тому

    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?

  • @dark9615
    @dark9615 2 роки тому

    YOU ALL ARE GODS.............

  • @ricardotrejoruiz5776
    @ricardotrejoruiz5776 2 роки тому

    awsome, biutiful

  • @Aba9846
    @Aba9846 2 роки тому

    A bit too late for me, had to implement cherry picking earlier today for the first time lol

  • @source8093
    @source8093 2 роки тому

    How about configurating apache with php/js/etc?

  • @azir8930
    @azir8930 Рік тому

    ❤‍🔥

  • @user-dn7yl7ms1u
    @user-dn7yl7ms1u 9 місяців тому

    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?

  • @AshrafMMA
    @AshrafMMA 2 роки тому

    👌

  • @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...]

  • @Neolisk
    @Neolisk 2 роки тому

    That's why you always create a new branch before reset.

  • @LordSplynter
    @LordSplynter 2 роки тому +14

    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 роки тому +2

      @@DyslexicMitochondria your username made me click on your profile. Your channel is a hidden gem bro

  • @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.

  • @animarain
    @animarain 7 місяців тому +1

    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 Рік тому

    👍

  • @nikoman71326
    @nikoman71326 Рік тому

    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

  • @dj_mk_crazy
    @dj_mk_crazy 3 місяці тому

    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? 🤔

  • @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.

  • @bhagyalakshmi1053
    @bhagyalakshmi1053 Рік тому

    Letter also small I will collect in further laptop and TV

  • @atchutram9894
    @atchutram9894 6 місяців тому

    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?

  • @gouravnainwaya5669
    @gouravnainwaya5669 2 роки тому +1

    Bro make react native

  • @hazartilirot1014
    @hazartilirot1014 2 роки тому +4

    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 роки тому +1

      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

  • @technomad9071
    @technomad9071 3 місяці тому

    no linux verison of tower :(

  • @pfbrodriguez
    @pfbrodriguez Рік тому

    if you are the reflog creator, I owe you a beer

  • @jairciezadiaz7456
    @jairciezadiaz7456 2 роки тому

    A

  • @jpandlexiwilliams1838
    @jpandlexiwilliams1838 2 роки тому

    First

  • @tokoanyar8787
    @tokoanyar8787 2 роки тому

    Steve Jobs