Video není dostupné.
Omlouváme se.

Git rebase: how to resolve conflicts

Sdílet
Vložit
  • čas přidán 12. 08. 2024
  • Conflicts resolution process during git rebase is somewhat confusing to a lot of developers I've worked with. In this video I try to explain it as simply as possible and then show the simple way to do it.
    Buy me a coffee: www.buymeacoffee.com/teamprog...
    Contents:
    0:00 Short sketch - thank you Bryan and Danny!
    0:26 Git rebase recap, short explanation
    1:36 Demo of git rebase with conflicts
    Next up: squashing commits with git rebase.
    Follow me online:
    LinkedIn: / alex-kovshovik
    Twitter: / ashovik
    Personal CZcams: / @alexkovshovik
    Instagram: / alex.kovshovik
    Facebook: / ashovik
    Mastodon: mastodon.social/@alex_kovshovik

Komentáře • 68

  • @jasonfreeman8022
    @jasonfreeman8022 Před 3 měsíci +1

    I watched this video after having some difficulty with a git rebase and the video photo perfectly captured my feelings after working with the rebase.

  • @TokyoXtreme
    @TokyoXtreme Před 2 lety +4

    A channel with this level of production value has only 38 subscribers!? This video has the best explanation I’ve seen so far of rebase conflict resolution. Make me #39.

  • @ShadyRonin
    @ShadyRonin Před rokem +1

    Thank you for this video! It's helpful to just see you go through the steps and pause to explain what we're looking at frequently, and why we're seeing the step we're at. This is a great approach and makes it much easier to learn than reading documentation in some cases.

  • @AltruisticHedonism
    @AltruisticHedonism Před 2 lety +2

    It's criminal more people haven't seen this, especially the cut-away head smash. Hope you continue with more vids some day!

    • @teamprogrammer9650
      @teamprogrammer9650  Před 2 lety +1

      Thank you so much! I'd like to do more with my team :) We're just a bit busy this Q4 at work :)

  • @alefrwx
    @alefrwx Před 2 lety +3

    Nice! Your explanations are very didatical! Thank you! I'm curious about the next video.

  • @AC-ez9ky
    @AC-ez9ky Před 2 lety +1

    Nice, great explanation. And I liked that "I always pull before push to avoid conflicts", had a nice laugh

  • @mohammadsalman3257
    @mohammadsalman3257 Před 2 lety +2

    probably only video that exactly addresses my problem. thank you.

  • @imuentinyannosarumen9789

    This is an excellent explanation. I had this issue at work some days ago and had to go through the
    painful road of figuring an alternative way to do it because I could not understand the videos I came across.
    But watching your video now, I see what I should have done clearly and clearly sees how it would have solved
    the conflicts I had.

    • @AlexKovshovik
      @AlexKovshovik Před rokem

      Thank you so much for your comment! It means a lot to me!

  • @dxphilo
    @dxphilo Před 2 lety

    Looool. Everytime I have some conflicts to resolve I come for this video. Thanks a bunch.

  • @HavingFunWithAvyan
    @HavingFunWithAvyan Před 6 dny

    Thanks for clean explanation.

  • @muhammadkashif-td7xn
    @muhammadkashif-td7xn Před rokem

    Very well explained!

  • @larryoke3434
    @larryoke3434 Před rokem +2

    I've been banging my head asking why do I keep getting the multiple conflicts during git rebase, I've looked everywhere, thinking I'm not doing it right. Now I know why, I should have done a squash first. Many thanks for that very last minute explanation, not even part if the video topic. It is why I came here. Many thanks

    • @teamprogrammer9650
      @teamprogrammer9650  Před rokem +1

      Thank you @Larry\sOke! This means a lot to me. I didn't visit this channel in a while, been busy with my 4th child, and seeing comments like this motivates me to do more explainer type videos!

    • @stiantsse7382
      @stiantsse7382 Před 3 měsíci

      I have been having this issue for years, so nice to finally figure it out

  • @dariatss
    @dariatss Před rokem +1

    The sketch really cracked me up. More, please!

    • @teamprogrammer9650
      @teamprogrammer9650  Před rokem +1

      Hi @Daria, let's face it - I only do the programmer videos so I could include silly sketches with them :) Working on another one as we speak!

  • @jvanelteren
    @jvanelteren Před 3 lety +6

    Great video, keep it up. This is really helpful to better understand git. It would also be nice to have something about branch strategy (trunk based vs gitflow or something). Or when to use a dev branch with separate feature branches. Or when to merge dev into master for a release

    • @teamprogrammer9650
      @teamprogrammer9650  Před 3 lety

      Thank you so much for feedback! I'd like to finish up rebase with the squashing and editing the commits, then I'll definitely talk about branching strategy: multiple long-lived branches vs a feature branches, release channels, etc.
      Best,
      Alex.

  • @rahulumap2969
    @rahulumap2969 Před 10 měsíci

    Thank you for this video!

  • @huayang2467
    @huayang2467 Před 10 měsíci +1

    Thank you so much, sir! For explaining this topic of rebasing with merge conflicts so well. I have watch many other videos. This is the clearest. I just used it to rebase and solve conflicts by myself for the 1st time! I thought I could never learn to do this by myself. It feels good to not have to plead my male colleagues for help with this all the time.

    • @teamprogrammer9650
      @teamprogrammer9650  Před 10 měsíci +1

      Thank you for saying this! It means a lot to me! I'm working on the Kubernetes one now :) Takes time to do it right

  • @andressalazar9671
    @andressalazar9671 Před 2 lety

    Thanks, this video was really helpful

  • @b.c.w6735
    @b.c.w6735 Před 11 měsíci

    Thank you, this helped me a lot.

  • @h4m74ro
    @h4m74ro Před rokem

    This is the best video!

  • @jeelim442
    @jeelim442 Před 6 měsíci

    The best one ever!

  • @aliabdollahian1465
    @aliabdollahian1465 Před 3 lety +1

    very helpful thank u :)

  • @tarankaranth8782
    @tarankaranth8782 Před 2 lety

    great stuff ..thanks

  • @jsagar95
    @jsagar95 Před rokem

    Thanks!

  • @alejandroperezrivas2397
    @alejandroperezrivas2397 Před 3 lety +1

    thank you so much! finally i undestand this

  • @meer-uq4ns
    @meer-uq4ns Před 4 měsíci

    I had a situation where I could not force push the changes after I fixed 5 commit conflicts which ended by one of the commit going missing as there was no difference. Maybe that's why force push didn't work. So I rebased pulled from my remote feature branch to my local branch and I had to fix things all over again and it was pretty different. After fixing conflicts now it has become crazy and full of other people's commits. I'm now thinking of creating a new branch from my current updated main branch then add my changes manually from my old feature branch since I don't want to deal with what's going on there it's messed up!

  • @thierrybeaulieu4403
    @thierrybeaulieu4403 Před rokem

    I was drinking some water while listenning at the video. At 0:47, I spat all of the water at my monitor because I laugh so hard.

  • @youtubeoneverything4581

    Thanks

  • @saschametz9018
    @saschametz9018 Před 3 lety +2

    Always so scary when you don't know exactly what you're doing. Thank you for clearing that up for me in the future!

  • @thekillercrab
    @thekillercrab Před 2 lety +1

    this was so useful! when is the interactive rebase vid coming?

    • @teamprogrammer9650
      @teamprogrammer9650  Před 2 lety +1

      Hi @thekillercrab, thank you for kind words. Sorry, I’ve been inactive lately. Going to double down on a few new vids shortly - to give back to community!

  • @alperari9496
    @alperari9496 Před 2 měsíci

    0:47 must have hurt

  • @dc33333
    @dc33333 Před rokem

    ribs hurt from laughing so hard

  • @HavingFunWithAvyan
    @HavingFunWithAvyan Před 6 dny

    This is when you made one change to the file.
    Sometimes we make multiple changes/commits on branch. When rebasing I get promoted to accept current or head changes. I accept and continue, then it ask me to do same in the next commit. Is this normal?

  • @SandraWantsCoke
    @SandraWantsCoke Před měsícem

    U menya vse ravno stoit "first resolve merge conflicts", which I of course did, I am not a beginner. Did it serveral times without luck, still the same error. Never used rebase and had to

  • @gyros9162
    @gyros9162 Před rokem +1

    Спасибо из Воронежа )

    • @teamprogrammer9650
      @teamprogrammer9650  Před rokem

      Привет из Юты! О чем разговор, на здоровье ;)

  • @SirBenJamin_
    @SirBenJamin_ Před rokem +2

    At 4:20, how come you didn't have to pull the remote changes? I thought fetch only downloaded them without applying them?

    • @AlexKovshovik
      @AlexKovshovik Před rokem +1

      Good question: fetch doesn’t apply changes to your local copy of main branch, but it does apply them to the origin/main “ref”, which is kinda a local mirror of the remote main. So when I rebase on top of origin/main after fetch, I am rebasing on top of latest commit from the remote main. I hope this makes sense :)

  • @bmfitzgerald3
    @bmfitzgerald3 Před rokem

    Thanks for the excellent video. At 4:05, you say "I can resolve this conflict in here, but this would create a merge commit, and a better way to do it is use a git rebase." ... Would appreciate some clarification on exactly _why_ is it better to use git rebase here versus using the UI and creating a "merge commit."
    Also, at 4:20, you used git fetch. Would git pull have done the job here, or does it have to be fetch? Why?
    Thanks for any additional insight!

    • @eddiethehead7466
      @eddiethehead7466 Před rokem +1

      git pull is basically execution of git fetch and git merge in succession. So in a situation where you want to update your local branch with all the latest changes from remote but don't want git to initiate auto-merging, git fetch is your way.

    • @bmfitzgerald3
      @bmfitzgerald3 Před rokem

      @@eddiethehead7466 thanks Eddie!

  • @etymology_
    @etymology_ Před 2 lety +1

    Did team programmer become a HR associate or something? There is not a next video, maybe he fell in the lake in Salt Lake City? RIP team programmer

    • @teamprogrammer9650
      @teamprogrammer9650  Před 2 lety

      I'm so sorry! I had a new child born and things got out of whack. Planning to get back to it, with more jokes :)

  • @mbponche
    @mbponche Před rokem

    I did that but there is a loop

  • @manabroy3036
    @manabroy3036 Před 2 lety

    Thanks a lost.

  • @dhananjaysarsonia29
    @dhananjaysarsonia29 Před 5 měsíci +1

    Isn't force push a bad strategy?

    • @teamprogrammer9650
      @teamprogrammer9650  Před 5 měsíci +1

      It depends: if no one else checked out your feature branch - force pushing is not bad at all, you’re just overriding the state of the remote branch with your local state

    • @dhananjaysarsonia29
      @dhananjaysarsonia29 Před 5 měsíci

      @@teamprogrammer9650 got it, thanks.

  • @machinima1402
    @machinima1402 Před 3 měsíci

    I feel like he is struggling to not blink horizontally

  • @konstantinrebrov675
    @konstantinrebrov675 Před 2 lety +1

    This is not very helpful because it is a contrived example. I know the basics of how to resolve a merge conflict. I want to see practical examples of resolving merge conflicts. If for example you rebase one branch on top of your other branch, and you have merge conflicts, with duplicated work, how to solve it?

    • @teamprogrammer9650
      @teamprogrammer9650  Před 2 lety

      The example is simplified indeed, but the concept in the same: if you have duplicated work in 2 branches and you're trying to rebase one on top of the other: you'll get the same "social markup" in your files with conflicts and you're still responsible for resolving them manually. Sometimes it is not obvious which code changes to keep, so typically both developers hop on a Zoom call and hash it out together.
      Thanks for the feedback! I might record a video of a "REAL" conflict resolution from my work - if I have a particularly tough one :)