Git From the Bits Up

Поделиться
HTML-код
  • Опубликовано: 25 авг 2024
  • Join GitHub trainer and evangelist Tim Berglund for a look at Git, from the bits up. This talk is not for the Git beginner, but a more advanced look at "weird internals stuff" and obscure commands that will reveal a sort of internal API that is there for you to use and help expose you to certain intrinsic software design insights that can be had from looking at Git at this level.
    "If you want to be that person on the team that's like the Git Weirdo...you're gonna need to know this stuff." - Tim Berglund

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

  • @mangak4
    @mangak4 11 лет назад +3

    a good presentation and the best explanation of `git rebase`i've seen so far

  • @nooxis
    @nooxis 11 лет назад +11

    The .git directory was missing the HEAD file (which also must contain a ref; at least "ref: refs/"). I don't think this requirement was just introduced in 1.8.2 though.

  • @uzimonkey
    @uzimonkey 6 лет назад +11

    Oh man, does this ever help me. Seriously, this is the way to learn Git. Following tutorials and entering commands means you have to stick to a very specific workflow because if anything goes wrong with the black box you're just out of luck. You engage panic mode, git is broken and you might as well delete all your work, clone the repo again and start over because you don't have the vocabulary to even explain what's wrong. It might take a bit more time and effort to learn Git from a lower level, but I think this is absolutely necessary for working with Git in any way.

  • @DaveTapley
    @DaveTapley 10 лет назад +20

    Heh, "the detached HEAD state, not as bad for git as it is for you" :)

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

      I think the joke completely flew over the audience's HEAD :)

  • @jex8885
    @jex8885 8 лет назад +3

    Fantastic talk, learnt alot, now I can feel more confident in rebasing. Thanks for sharing :D

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

    Excellent talk, learned so much about git internals. Literally the best video on git internals.

  • @Dampfaeus
    @Dampfaeus 8 лет назад +5

    This is actually really helpful. Thanks for the video.

    • @Dampfaeus
      @Dampfaeus 8 лет назад +1

      +Dampfaeus Also a nice question: "How many of you rebase..." "... with confidence" *gg*

  • @safouanebaroudi6190
    @safouanebaroudi6190 6 лет назад +1

    This is THE best video on git, thank you so much Tim great tutor.

  • @modolief
    @modolief 6 лет назад +1

    Masterful. This was a tour de force.

  • @QuantumFractal
    @QuantumFractal 10 лет назад +14

    55 minutes worth spending (or 27 at 2x speed) :) Awesome presentation!

    • @jajajajam
      @jajajajam 10 лет назад +1

      I didn't even think watching a video at 2x speed would be a good idea till now.
      haha

    • @QuantumFractal
      @QuantumFractal 10 лет назад +2

      ***** Yep.. I saved hundreds of hours by watching at 2x. Besides, some videos are way to slow for my taste and I typically tend to lose focus. Most of the time I watch them one time at 2x, but occasionally I do have to watch them again at 2x. IMO if you are to spend the same amount of time watching a video presentation you can fixate the information better if you watched it 2 times at 2x than one time at 1x. I like to think of it as: the first pass is the familiarity pass, the second is the detail pass.

    • @milesrout
      @milesrout 10 лет назад +2

      QuantumFractal I do this too. Sometimes I'll slow down to 1x if they go over something particularly quickly or I have trouble hearing a small bit of it.

    • @muntoonxt
      @muntoonxt 8 лет назад

      +QuantumFractal I watch at 1.5x (sometimes 2 if it's way too slow). I don't have the patience to rewatch the entire thing, so I just skip back if needed and drop to 1x.

  • @tango2olo
    @tango2olo 6 лет назад +3

    Minimal required .git content has 2 empty directories {objects, refs} and a file {HEAD}, with HEAD having "ref: refs/heads/master" string as its content.
    After creating above, git status won't throw an error.

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

    9:42 For anyone wondering, the `watch` command strips off the non-printing box drawing characters that `tree` uses.

  • @SaiGudigundla
    @SaiGudigundla 10 лет назад +2

    Great talk. Learned a lot about git internals from this talk. I wish your initial attempt of creating .git sub folders to trick 'git status' worked. Did you figure out what additional items you had to add to make 'git status' happy?

  • @meghandenny6922
    @meghandenny6922 8 лет назад +1

    Awesome talk. but what exactly are the deltas?

  • @obliviousotaku
    @obliviousotaku 7 лет назад

    Also, the simplest way to revert a merge would be to use:
    git reset --merge ORIG_HEAD

  • @itsrawrz
    @itsrawrz 11 лет назад

    I think it's monospace Monaco. ( which is the default monospace font for mac )

  • @pabloacuna2176
    @pabloacuna2176 10 лет назад

    great talk!

  • @batsoog
    @batsoog 10 лет назад

    great lecture ... btw .... what git terminal is Tim using to use the tree command, as git bash v1.9.4.msysgit0 doesn't seem to be accepting this command???

  • @NikiDeStoner
    @NikiDeStoner 11 лет назад

    Any video which focuses on the beginner aspect of git?

  • @NikiDeStoner
    @NikiDeStoner 11 лет назад

    Thanks a lot!
    Keep up the good work :)

  • @lesenel
    @lesenel 11 лет назад

    Weird question, but does anyone have any idea what font he is using in the console?

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

    🙏 🙏 🙏 thanks!!

  • @PiperChester1
    @PiperChester1 10 лет назад +2

    Jump to 9:15 if you just want to see the update script.

  • @OchoZero9
    @OchoZero9 9 лет назад

    Very entertaing talk.

  • @diego898
    @diego898 11 лет назад

    anyone know why what he first tried with hash-object didnt work?

  • @brunoccs
    @brunoccs 10 лет назад +1

    Pardon my ignorance, but was it python he was using to write the while loop?

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

    Can someone breakdown/explain what Tim is explaining 32:07?

  • @NikiDeStoner
    @NikiDeStoner 11 лет назад

    Thanks.

  • @RudyMurilloJr
    @RudyMurilloJr 10 лет назад +3

    Am I the only one that thinks he sounds like Louis CK?

  • @sergeyrar
    @sergeyrar 6 лет назад

    Fixup discads the log message of the commit squashed, so I think a better option is to just use fixup instead of squash 50:40

  • @frankcui
    @frankcui 9 лет назад

    you can do better at vim at 51min.

  • @GerbekSergey
    @GerbekSergey 8 лет назад +2

    That is the issue with Git - questionable system design. I mean - If one needs to teach details of "under the hood" mechanics of a tool for people to get it, then it is not an intuitively useful tool. But yes - Git is the most beautiful of ALL UGLY version control thingies we have.

    • @canmetan670
      @canmetan670 8 лет назад +2

      I really don't think you need to know the details of the underlying system. And if you find all these version control systems to be ugly, you must have a concept that you think is "beautiful". If you have a better way of doing version control, why don't you create one?

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

      I disagree with this statement. Git's design is very elegant! And as the speaker pointed out, there's even some software engineering insights to be gained from it! At least a handful of other VCS tried to tackle the same problem before Git and they all perished upon its arrival and adoption. When was the last time a piece of software with already well-established competitors was able to take over the industry like this? Many good tech products don't make it because getting people to change is really, really hard!

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

      You only have to know the "marble" commands. The "plumbing" you will only know when your git goes kaputt. Instead of trying to learn plumbing you may call the plumper. Call me - for instance :-)

  • @chazadanga
    @chazadanga 8 лет назад

    Great talk. Shame about the way he swallows water so noisily.

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

      😆 @21:18 here you go buddy

  • @canmetan670
    @canmetan670 8 лет назад +1

    This was not helpful for me.

  • @mikeyo1234
    @mikeyo1234 11 лет назад

    If git requires people to 'look inside the box' sometimes to get it to work, it means it sucks. It is typical that an uber geek create git. Great coders are crap designers (but they THINK they are good designers...). Have you ever seen a website created by a coder!? Eek!

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

      I dunno if you are aware but git holds nearly 80% of market share. Been using git for years and I never had to look in .git folder.

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

      It's like looking under the hood of my labo - I do not have a clue how it works - but I would never tell anyone it sucks :-)
      For me it is good enough to drive and to be fast. I only have to know the plumbing when it breaks in the middle of a race and no plumber around to yell at to get it fixed :-)

  • @Jenalgo
    @Jenalgo 6 лет назад +1

    Poorly thought out presentation. Not useful for developers who want to learn git. If he really is a trainer, he's a bad one.