Learn how to rewrite Git history - Amend, Reword, Delete, Reorder, Squash and Split

Поделиться
HTML-код
  • Опубликовано: 25 дек 2024

Комментарии • 269

  • @themoderncoder
    @themoderncoder  Год назад +3

    I HAVE MORE GIT VIDEOS! ruclips.net/p/PLfU9XN7w4tFwKwh_xPSQ_X1-hROQEpHnM. Additionally, a written reference for this video is available on my blog: www.themoderncoder.com/git/

  • @tomng92
    @tomng92 4 года назад +64

    Pure gold! Learnt faster in those 12 mins than reading any book.

  • @Trhnetesiuz
    @Trhnetesiuz 3 года назад +2

    3 hours of other videos in 13 minutes. Awesome. Thanks a lot

  • @RedFenceAnime
    @RedFenceAnime 4 года назад +63

    put the timestamps before the topic in the description and RUclips will automatically add chapters to the progress bar
    0:00 - intro
    0:40 - Amending commits
    2:04 - Rewording commits
    4:14 - Deleting commits
    5:34 - Reordering commits
    7:04 - Squashing commits
    9:09 - Splitting commits
    The "0:00" is needed

    • @ozen8499
      @ozen8499 2 года назад

      thx

    • @themoderncoder
      @themoderncoder  2 года назад +3

      Good tip thanks. I went ahead and made those changes

  • @slavoie
    @slavoie 5 лет назад +10

    Thanks for this! If you stick to Vim as the default Git text editor, you may want to know about the following commands as a starting point:
    gg → Go to top of buffer/file.
    ddp → Delete a line and put it below the current one (to re-order commit). `dd` deletes a line while `p` put it below the current line.
    ddkP → Delete a line and put it above the current one. `dd` deletes a line, `k` moves up one line and `P` (uppercase) pastes above the current line.
    h / j / k / l → Move around à la Vim.
    x → Delete a character
    xp → Switch the order of two characters.
    G → Go to the end of the buffer/file.
    ZZ → Save and quit buffer. For this purpose, same as `:wq` but less keystrokes ;).
    There's obviously much more to learn, but that should be useful to at least do some basic operations.
    Also, when splitting a commit, a single file might be part of two commits. So to commit only part of a file, there's also an interactive staging mode: git-scm.com/book/en/v2/Git-Tools-Interactive-Staging

    • @SomeYouTubeGuy
      @SomeYouTubeGuy 4 года назад

      Great comment but I'm surprised you didn't include 'dw'. No one should be backspacing a word in Vim

    • @joshuakoehler6457
      @joshuakoehler6457 4 года назад +1

      @@SomeRUclipsGuy I thought a similar thing, but would recommend 'cw' (change word) instead, which enters you into insert mode after deleting the word. So it is equivalent to 'dw' + 'i'

    • @SomeYouTubeGuy
      @SomeYouTubeGuy 4 года назад +1

      @@joshuakoehler6457 It would seem you know a tiny bit more Vim than I.

  • @abdul-aleemelmuzoghi4133
    @abdul-aleemelmuzoghi4133 3 года назад

    Been 2 days trying to learn how to delete a commit and you just came and and did it in 2 minutes

  • @gaofan2856
    @gaofan2856 Год назад

    Perfect video, short, precise with visualization. Not like telling the history of git for 40 minutes, and then start explaining things like others do

  • @1murkeybadmayn
    @1murkeybadmayn 3 месяца назад

    Your style of teaching is one I've always wished for - the instructions but alongside an actual visualisation of what is happening in the end goal. I've been struggling to understand my teacher but thank you for this video and others.

  • @moe-eh5vi
    @moe-eh5vi 2 года назад

    I like that this video is recorded in a kitchen. Makes it feel less intimidating. Also very clear explanations.

  • @losrobbosful
    @losrobbosful 5 лет назад +25

    This was gold, helped me a lot. Definitely great teaching abilities.

  • @arthurh2064
    @arthurh2064 4 года назад +1

    I wish you wouldn't have stopped uploading git tutorials, they are by far the best I've seen and I've seen many

  • @vaibhavgarg5607
    @vaibhavgarg5607 8 месяцев назад

    Was stuck on a PR as I was unable to edit a commit's changes this video saved me. Really helpful

  • @thesavagesalmon9464
    @thesavagesalmon9464 5 лет назад +6

    This channel is COMPLETELY underrated. You deserve a tonne more subscribers. Keep consistently making quality videos such as this, and you will make it bigger in no time!

  • @vishnuthamizharasan6192
    @vishnuthamizharasan6192 4 года назад

    I have searched for answers and videos I didn't get anywhere, but the way you explain git is amazing and one of the best explanations ever seen. You are soo good at Git man. Thanks for the Video. Please make more videos. I love it

  • @alpavaidya412
    @alpavaidya412 4 года назад

    The animation is what is required to understand Git commands...thanks for making the effort to make them to explain....please make more videos on Git

  • @peterdoyle1994
    @peterdoyle1994 3 года назад

    Best, clearest git tutorials by a country mile. Thanks.

  • @VKD007
    @VKD007 2 года назад

    i fixed something today by manual merging with dev branch if i knew this before i wouldnt need to do manual work. Thanks man nice videos

  • @zmark2274
    @zmark2274 3 года назад

    Over and over hank you again to express yourself in so clear way

  • @kapaaaau
    @kapaaaau 4 года назад

    This is the best explanation I have seen for Git's commands, and they are real world solutions for real world problems. Thank you very much.

  • @pascualrosario8633
    @pascualrosario8633 Год назад

    You have a gift for teaching. Very concise and easy to understand.

  • @krazee_aznnn
    @krazee_aznnn 4 года назад

    I mean, so many comments before have said this, but I need to confirm: this tutorial was more clear and understandable than the articles and other videos I watched about rebasing and changing Git commit history! I get it now!

  • @nospecialmeaning2
    @nospecialmeaning2 3 года назад

    Subscribed!
    You might be the only RUclipsr I have an occasional compulsion to listen to at lower than normal speed :D

  • @m4rt_
    @m4rt_ Год назад +1

    Holy shit, git rebase is powerful.
    I will keep this in mind whenever I want to fix something in my git history.

  • @gabrielsoloman5000
    @gabrielsoloman5000 4 года назад

    best series on non-basic git, congrats

  • @fullstackprojects5615
    @fullstackprojects5615 3 года назад +1

    git rebase is a very powerful tool. Thanks for sharing your knowledge :)

  • @d-e-v-esh
    @d-e-v-esh 3 года назад

    This is the best video by far I have seen on RUclips. Thank you so much man....

  • @BatsAwesomeIn2030
    @BatsAwesomeIn2030 3 года назад

    Really like the video, and the written blog is good too. Clear, concise and to the point.

  • @najimali32
    @najimali32 2 года назад

    Your Git Videos are really helping me to play with my commits & branch at work. Thank you so much.

  • @zmark2274
    @zmark2274 3 года назад +1

    Can't express how thankful I am to you. So accurate and informative. Thank you indeed

  • @daggerok
    @daggerok 4 года назад +9

    1) in vim instead of :wq you can use :x its shorter
    2) when explaining drop, you should mention, that changes in README file also will be reverted, not only commit message from git history, so people who wants only remove commit message, but not changes should use fixup
    3) in vim, instead of cut-paste, use copy (press yy on line to copy in command mode) + paste (press p on line above place where you want paste) + delete (press: dd on line to delete)

    • @mariano.zunino
      @mariano.zunino 4 года назад +8

      3) dd and P was all he need. No yank was needed in this video.

    • @Andriak2
      @Andriak2 4 года назад +4

      To clarify in 3) dd is like cut, yy is like copy, p is like paste (but using registers instead of clipboard)

  • @darkphoenix68
    @darkphoenix68 6 месяцев назад

    I came to Git from SVN -- and the ability to modify history was probably the hardest thing to wrap my head around. Not only that it was possible, but that there were situations where it is actually desirable! Now ... well, I could not go back to SVN! 🙂

  • @cddrury
    @cddrury 4 года назад +2

    Great explanation and the graphical representation you used while typing the commands made it much easier to understand from a visual perspective. Keep up the good work!

  • @786saga
    @786saga 4 года назад +5

    Dude it really helped me a lot i was missing the few of these concepts of git thank you.

  • @codewithsub5083
    @codewithsub5083 4 года назад +1

    This is the best tutorial of git I have ever seen.
    Thanks man

  • @sumanghosh4439
    @sumanghosh4439 3 года назад

    Excellent! Thank you so much for this video. I have struggled with rebasing and was scared. But your teaching skill is excellent and I learnt in few minutes and used it successfully.

  • @sebastianfarias5670
    @sebastianfarias5670 4 года назад

    Simply the best GIT explanation ever, super concise and really helped me get out of a pickle today !!! THANK YOU !

  • @Mark986270
    @Mark986270 Год назад

    Thank you very much. This was just what I needed to clean up my merge requests

  • @nikolajovanovic1140
    @nikolajovanovic1140 4 года назад +2

    Concise and straight to the point.
    Bravo!

  • @rabishankar5993
    @rabishankar5993 3 года назад

    Hidden gems of youtube.

  • @alanjrobertson
    @alanjrobertson 2 года назад

    Another excellent video, wish you'd come back to RUclips and do more!

  • @alexanderjesusvargas5998
    @alexanderjesusvargas5998 4 года назад +2

    It is crazy this is free content!

  • @MartijnMuijsers
    @MartijnMuijsers 2 года назад +1

    Great concise explanation of everything that might matter to someone!

  • @abhinavjain8962
    @abhinavjain8962 4 года назад

    Can we all take some time and address that this is the best Git tutorial video... On the internet.... And how many dumb asses this guy has saved including mine.. .... 😊. # Awesome explanation guru ..!!

  • @mr.w7803
    @mr.w7803 4 года назад

    All things I've done before, but I do them so infrequently I forget the work flow... thank you so much for the walk through!

  • @shivanjalikaname8935
    @shivanjalikaname8935 4 года назад

    Voila...you gained a subscriber.. just loved the way you explain technically and practically

  • @die1234abc
    @die1234abc 4 года назад

    Best explanatory video on all this subjects! Thanks and keep up the good work!

  • @danielwestberg9540
    @danielwestberg9540 4 года назад

    Very well explained! Super good with the visual branches to better understand what's happening

  • @isaacambi1914
    @isaacambi1914 Год назад

    God bless you. Please do you have content on Jenkins or Terraform or Ansible? You teaching style is unmatched.

    • @themoderncoder
      @themoderncoder  Год назад +1

      Can't say I've used Jenkins, Terraform or Ansible yet, but I do plan to make more git videos

  • @AIGenerated
    @AIGenerated 4 года назад

    Good job this video looks edited by a professional company, the animations really help, keep up the good work

  • @alexismandelias
    @alexismandelias Год назад +1

    4:07 git recreates every commit from HEAD~2 onward, not just the one that gets reworded. The first commit's hash changed from 8fe3 to bb99 indicating that it's a different commit. Same goes for deleting, reordering etc

  •  5 лет назад +1

    Omg did not know that is possible to reording commits. So darn simple! Thank you!

  • @ianedits1
    @ianedits1 2 года назад

    Short and precise. Good job sir

  • @mohammadanas3320
    @mohammadanas3320 3 года назад

    You r underrated bro...keep making videos

  • @iconjack
    @iconjack 4 года назад +1

    This was an amazing video. I learned a lot, including: I will never split a commit.

  • @gabrielsanmartin8326
    @gabrielsanmartin8326 3 года назад

    Awesome buddy! I'm trying to go deep into git.. and this video was gold.

  • @JoshuaMusau
    @JoshuaMusau 4 года назад +1

    You make a really good teacher...

  • @theoceandragongaming
    @theoceandragongaming 11 месяцев назад

    This man sitting in his kitchen saving life of thousand of engineers. Kudos

  • @cristhiancantillo4922
    @cristhiancantillo4922 Месяц назад

    The best channel for learning git = )

  • @videet
    @videet Год назад

    Clear and crisp. Thank you.

  • @predatorjoutube
    @predatorjoutube 5 лет назад +2

    Thank you! I like when you show the graphic, because it explains exactly what is git doing under the hood. It would be greate if you could explain how does command "pick" work combined for instance with a remote master? What is the efficient way to pick a commit between many commits, add changes and push it to origin master. How can we manipulate the history of commits, which were already pushed to origin master? Thank you for your response.

    • @themoderncoder
      @themoderncoder  5 лет назад +1

      Any sort of rewriting of commits that have already been pushed to remote master is not recommended. That's why you saw me in the video working mostly with commits on a local feature branch, because it's dangerous to rewrite history that is shared upstream to other collaborators. If you absolutely need to rewrite commits that have been pushed to remote branches, you can use "git push --force" but you'd need to have every other collaborator do a hard reset of their local repos. If you do this just note that every action that I went over in the video is destructive (even rewriting the commit message wipes away and rebuilds the original commit) so rewrite remote history at your own risk

    • @latest_disaster_videos_globe
      @latest_disaster_videos_globe 3 года назад

      @@themoderncoder hi buddy how are you?
      I can not see any new content on this channel since 2 years. I hope you are well.

  • @greenmanreddog
    @greenmanreddog 4 года назад

    Very clear and concise explanations - thanks.

  • @nrmlkmrks
    @nrmlkmrks 4 года назад

    Awesome video! Great example of explaining stuff to the point with really good examples.

  • @backpropagation8365
    @backpropagation8365 4 года назад +1

    I think we can also go directly to the commit by git checkout . This will give us a detached HEAD. Then you do all you need - unstage, add, and recommit etc. Then attach the HEAD to a temporary branch and merge/rebase it with some exisiting branch. But I guess the interactive rebase is much easier? By the way video is great. Thanks.

  • @disgeneric4346
    @disgeneric4346 3 года назад

    Hey, thanks a lot for this tutorial! I've looked through several text ones, but they were not as clear as yours!

  • @viktorstrate
    @viktorstrate 4 года назад

    Please make a video about 'git reset'. Awesome video btw. 😊

  • @NirdeshM
    @NirdeshM 4 года назад +1

    Very informative with awesome explanation.

  • @demian256able
    @demian256able 3 года назад

    excelent vídeo. very clear explained. that kind of graphics are a very good idea.

  • @AdamTheBen
    @AdamTheBen 4 года назад

    Thank you very much for your content. Extremely helpful. Love the animations, they make it so easy to wrap your head around the concepts.

  • @rahuldasmajumder7690
    @rahuldasmajumder7690 2 года назад

    Thanks man..it really cleared the doubts✌️

  • @SarnenduMukherjee
    @SarnenduMukherjee 4 года назад

    Thank you for this superb video. Awesome animation and edit makes this video more awesome.

  • @rohitkumarshrivastava9693
    @rohitkumarshrivastava9693 3 года назад

    You are a genius!! This video has helped me a lot

  • @forkanali
    @forkanali 4 года назад

    very helpful and short video. short time you teach me alot.
    thank you !

  • @bytesCraft
    @bytesCraft 5 лет назад +1

    Nice one bro. Try doing more backend stuff, seems you're really good at breaking up complex stuff.

    • @themoderncoder
      @themoderncoder  5 лет назад

      Any suggestions?

    • @bytesCraft
      @bytesCraft 5 лет назад

      @@themoderncoder php, python or javascript. Thank you.😎

  • @siegblink182
    @siegblink182 4 года назад

    Thanks for making this video. This has solved most of my problems.

  • @GuillermoAguilarCruz
    @GuillermoAguilarCruz 4 года назад +1

    Thanks, you really know how to explain in a faster and cooler way. Just one question, how can I perform these operations if I have previously pushed my changes?

  • @Anujgupta-yi9di
    @Anujgupta-yi9di 3 года назад

    Great job! Explains everything so easily :)

  • @przemekostrowski3108
    @przemekostrowski3108 Год назад

    Very good video. Well explained. Thank you!

  • @youssefsabbagh4341
    @youssefsabbagh4341 2 года назад

    Great video !! Couldn't have explained it any better !!

  • @shaka1240
    @shaka1240 4 года назад +2

    Thanks a lot, this tutorial helped me a lot to fixing my shitty commits,

  • @bvivan1690
    @bvivan1690 4 года назад +1

    4:00 hash of the last commit has changed as well as one with fixed message
    (4:05 you said everything else stayed the same so...)
    Great video btw! :)

  • @pradeepnooney3056
    @pradeepnooney3056 3 года назад

    Thank you so much. Very good tutorial. and good animation too

  • @Kamaltweet
    @Kamaltweet 4 года назад

    Wow. You made it so easy to learn. Thank you 🙏

  • @donalexey
    @donalexey 5 лет назад +9

    This is just a great tutorial!

  • @rubenrdias
    @rubenrdias 5 лет назад

    Great tutorial! Very useful and nicely explained.

  • @Pumazr
    @Pumazr 4 года назад

    Great video, so clean explanation.

  • @akbarhafeezbutt1761
    @akbarhafeezbutt1761 2 года назад

    Thank you very much for your knowledge sharing, you're the best!

  • @SakhawatHossainlive
    @SakhawatHossainlive 3 года назад

    Wonderful !! Thanks for this video man.

  • @soumyadrip
    @soumyadrip 4 года назад

    Great video,solved so many doubts

  • @qCJLbggG4IWAY9nTH6o
    @qCJLbggG4IWAY9nTH6o 2 года назад

    I'm thankful for your content

  • @pitter5990
    @pitter5990 5 лет назад

    Love your videos! I hope you go ahead with them!

    • @themoderncoder
      @themoderncoder  5 лет назад +1

      For sure. Got any idea for topics?

    • @pitter5990
      @pitter5990 5 лет назад

      @@themoderncoder Soft Skills. They are as much crucial as Hard Skills. The idea is to present the most important of them, and how can Soft Skills turn you into a rare professional.

  • @martinspilovsky9071
    @martinspilovsky9071 4 года назад +1

    Thank you so much for this compilation

  • @bseroy
    @bseroy 5 лет назад +1

    These videos are fantastic!

  • @louaiforui
    @louaiforui 2 года назад

    Great job! great explanation!

  • @matk2283
    @matk2283 9 месяцев назад

    you are awesome !!. Great Thanks for this concise 10 minutes tutorial on "git rebase interactive".
    the best of the best.
    Mathew. K from Colorado

  • @10SURA
    @10SURA 4 года назад

    Thank you very much for your content. Extremely helpful

  • @ajaychowdarykandula2230
    @ajaychowdarykandula2230 4 года назад

    Stuff like this makes me wonder, at what stage of learning am left off with GIT, nevertheless it was a great video, but very helpful for all as there are a lot of situations at work one has to deal and knowing that one in your team is present to count on when it comes to those situations!!! Thanks @The Modern Coder, Subscribed n Liked :)

  • @PavanKumar-eo2vc
    @PavanKumar-eo2vc 4 года назад

    very useful and every minute of the video is IMP

  • @DavidLance
    @DavidLance 4 года назад

    Absolute life saver! Thanks a ton for this.

  • @LNMLucasMasiero
    @LNMLucasMasiero 2 года назад

    Thank you so much.... rebase looks like a powerful tool

  • @meksykan91
    @meksykan91 3 года назад

    I love your videos. Can you make one for Revert and reset.