Incredible great stuff: I often have struggled to explain Git to my peers. Have tried so many different ways. Your way is the best. Thanks a lot for this!
Awesome Tutorial! Really succinctly summarizes the inner workings of Git. This is really useful since I have to automate a bunch of git stuff with GitPython and while their tutorials is great they don't really explain any of this stuff. So thank you!
Thanks a lot for your kind reply @Shashank! Please help me spread the word by sharing these videos with more people 🙏🏻 I will indeed post more in this series very soon!
And i am watching the video i wad looking for, for the entire day at 00:00 just before i decided to give up and go sleep What to say! thanks man you saved me 👍
So the file 1.txt will be saved in new blob ? If in a file of say 1000 line of codes.. if I make a single line change will that mean it will create a new blob of all the 1000 lines code ?
Hi Srijan, Yes - it indeed means that. Git will create an entire new blob in this case. There are optimizatoins however - specifically, git's Packfile. You can read about it here: git-scm.com/book/en/v2/Git-Internals-Packfiles In addition, I have posted the next video in the series here - ruclips.net/video/52MFjdGH20o/видео.html I hope you will find it useful
Excellent tutorial. But are you correct when you say a commit object contains the hash for "one or more parent commits"? I prefer to think of a commit object as an element in a linked list where each commit object contains a single hash for its parent commit (unless its the initial commit). So to find the grandparent commit you would need to look at the parent commit.
Hello Daniel and thank you for your comment and question. A commit object may contain pointers to more than one commit. It is not the case of a "grandparent" commit as you called it, but for example - a merge commit which has two parents (almost always) as I described in the video about Git merge: ruclips.net/video/ZS4stBVdDII/видео.html It can also have more than two (direct) parent commits, but it's extremely rare. I hope this clarifies things. If not, please feel free to ask 🙏🏻
Hi Rogelio, thanks for your question! It actually makes sense to refer to tags in a video, but the concept is too short to dedicate a full video for them - as tags are just named reference to a commit, and that reference doesn't (automatically) change with additional commits. That is, let's say we have a branch `my_branch` which points to `commit_1`. Now we make another commit `commit_2` which points to `commit_1`, so `git` will automatially update `my_branch` to point to `commit_2`. On the other hand, if we use `git tag my_tag` to create a tag pointing to `commit_1`, then it will still point to `commit_1` even if we introduce additional commits. I hope that makes sense :)
Best explanation I have ever seen on this topic
Thank you so much!
Agree 💯
Thank you very much
Incredible great stuff: I often have struggled to explain Git to my peers. Have tried so many different ways. Your way is the best. Thanks a lot for this!
Thank you very much for your kind feedback!
This is so good. . . Just stumbled upon your channel and was amazed how easy you explain with the visuals. Helped so much.
Thank you so much for your kind reply!
Outstanding explanation of the internals. A lot of info condensed into just 5 minutes. Awesome bro. 👌 hats off 👏
Thank you so much for this kind feedback! 🙏🏻
I can not belive how simple and awesome you explained these concepts! Thanks a lot
Thank you for your kind reply 🙏🏻
Please help me share these videos with more people :)
Wow, wow, WOW! I've never seen such a difficult concept explained so well. Thank you.
Thank you so much, your comment made my day 🙏🏻
This is Amazing!!
I was lost searching for "internal git tutorials" on web, and your videos are covering everything i was looking for!
Keep going!
Thanks so much for your kind reply Lucas! I will do my best to post more :)
@Luncas, I have posted the next video in the series here - ruclips.net/video/52MFjdGH20o/видео.html
I hope you will find it useful
Amazing content mate. Please upload more tutorials like this. You have a talent for explaining things...
Thank you very much Tien!
I have posted the next video in the series here - ruclips.net/video/52MFjdGH20o/видео.html
I hope you will find it useful
Yes, I agree!
This is such a good explainer, I wish this was more popular!
Thank you for your kind reply 🙏🏻
Please help me share the word and make it more popular :)
it was really well described and animated. that was perfect. thank you for your job.
Thank you so much for your kind words!
this is easily the best possible explnation out there,,,
Thank you so much!
Awesome Tutorial! Really succinctly summarizes the inner workings of Git. This is really useful since I have to automate a bunch of git stuff with GitPython and while their tutorials is great they don't really explain any of this stuff. So thank you!
Thanks Brett! Your comment made me happy :)
That is amazing! concise and crisp, would love to see more of these.
Thanks a lot for your kind reply @Shashank! Please help me spread the word by sharing these videos with more people 🙏🏻 I will indeed post more in this series very soon!
And i am watching the video i wad looking for, for the entire day at 00:00 just before i decided to give up and go sleep
What to say! thanks man you saved me 👍
Thank you Hamza!
I have posted the next video in the series here - ruclips.net/video/52MFjdGH20o/видео.html
I hope you will find it useful
Bro just destroyed my 3 years ignorance. Great explanation.
Thank you :) I am glad it could help!
Thanks you! I have been searching hard to understand this, and now I got! :)
Glad it helped @Renato! Please help me spread the word 🙏🏻
Thnaks !! Great content and pretty well presented: neat, concise, and to-the-point...
Glad you enjoyed it And thank you! These comments really make my day and motivate me to create more content :)
This is cool explanation! Can't wait to see next video.
Thanks! It will be published soon
I agree that it is an amazing video and the way you explain the material is really cool. Please, go on.
Thank you so much for this kind feedback! 🙏🏻
You legend, so clear and really well animated!
Thank you very much so the kind words 🙏🏻
Quick, well animated and conceptually explained
Thank you very much!
Such an underrated channel, awesome content 🙌
Thank you very much! Please spread the word so more people get to enjoy it :)
Awesome content Brief! Thank you a lot man, please continue.
Thanks, will do! If there are specific topics you'd like me to cover, please let me know!
Wonderful, Thank you, Omer.
Thank you Team!
Best explanation on Git internals.
Thanks a lot for your kind reply @Yu Sun! Please help me spread the word by sharing these videos with more people 🙏🏻
@@BriefVid Definitely.
Just Amzing !!!
Thank you 🙏🏻🙏🏻
Awesome work dude! Thanks a lot!
Glad you liked it, and thank you for commenting!
Just WOW.. best ever git explanation ❤️👍
Thank you so much Kamil! I appreciate it! 😀
Best explanation. Thank you so much
You are welcome! Thank you for your kind comment 🙏🏻
Excellent! Thank you!
Glad you enjoyed it! Thank you for your nice comment :) Please subscribe to this channel 🙏🏻
simple and to the point, thank you :)
Thank you for the nice comment! I am glad you liked it!
Very clear ! Thanks Omer !
Thanks Jordan, I'm glad you liked it!
thank you so much that was amazingly clear
Thank you for the kind comment!
omg I immediately understand the git objects thank you!
Thank you for your kind reply!
Awesome explanation and apt animation!
Thank you very much!
I love this series
Thank you for your kind words!
Great content!
Thank you!
I just subscribed, This is great! Keep up the good work!
Thank you so much Ryan! Will do :)
Excellent tutorial
Thank you! Please share it with more people 🙏🏻
Awesome explanation
Thank you so much!
Awesome intro!
Thanks @Ilan Godik! I will post the next videos soon
Well explained man! kept it brief and simple. Keep up the good work :)
Thanks a lot for this kind feedback Subhankar! I appreciate it 🙏🏻
@@BriefVid Why aren't you uploading more content like this?
YOU ARE FREAKIN AWESOME!
Thank you!!
I cannot thank u enough u r a angel?
Thank you so much for your kind words :) Not an angel, but I'm happy you found it useful! Let me know if you have any questions
thank you very much, you cleared my confusion
Thanks for letting me know Vivek!
So the file 1.txt will be saved in new blob ?
If in a file of say 1000 line of codes.. if I make a single line change will that mean it will create a new blob of all the 1000 lines code ?
Hi Srijan,
Yes - it indeed means that. Git will create an entire new blob in this case.
There are optimizatoins however - specifically, git's Packfile. You can read about it here: git-scm.com/book/en/v2/Git-Internals-Packfiles
In addition, I have posted the next video in the series here - ruclips.net/video/52MFjdGH20o/видео.html
I hope you will find it useful
@@BriefVid thanks
Love the Les Miserables reference.
Nice catch River! I was wondering when someone would notice it 😉
Super clear, thank you very much
Thank you Jean!
I have posted the next video in the series here - ruclips.net/video/52MFjdGH20o/видео.html
I hope you will find it useful
Awesome fantastic excellent ... 🤩
Thank you so much 😀
Awesome video! Made me want to check out more of your content, you got yourself a new subscriber! Keep up the good work👍
Thank you Samir! I will do my best to add more content soon :)
Excellent tutorial. But are you correct when you say a commit object contains the hash for "one or more parent commits"? I prefer to think of a commit object as an element in a linked list where each commit object contains a single hash for its parent commit (unless its the initial commit). So to find the grandparent commit you would need to look at the parent commit.
Hello Daniel and thank you for your comment and question.
A commit object may contain pointers to more than one commit. It is not the case of a "grandparent" commit as you called it, but for example - a merge commit which has two parents (almost always) as I described in the video about Git merge:
ruclips.net/video/ZS4stBVdDII/видео.html
It can also have more than two (direct) parent commits, but it's extremely rare.
I hope this clarifies things. If not, please feel free to ask 🙏🏻
@@BriefVid Thanks! I have some more studying to do. And people say that git is complicated...
@@danielsears1522 No problem, let me know if you have other questions 🙏🏻🙏🏻
Was the hash 24601 intentional? If not then there’s something fitting about French RUclipsr coming up with it :)
Nice catch William :) Indeed it was intentional, I am a Les Miserables fan, though I'm not French 😇
Very well explain! Well done! Keep it up!
Thanks a lot Parmveer!
Amazing video, totally under-viewed! 😀
Thanks so much! Please help me share it 🙏🏻
This awesome, really thanks for this video!
New sub and hello from Bogota!
Thank you Andrés! It's great to have you as a subscriber :)
Life saver my man.
Thank you Noah!
Amazing
Thank you!
Fantastic explanation.👆
Thanks! I'm glad you found it useful 🙏🏻
Awesome!!
Thanks a lot!
Simply Amazing !!!!!!!
Thanks a lot!
Superb video
Thank you so much 😀
Nice explanation.
Thank you Johnathan!
Nice video
Thank you!
Just curious: What kind of tools have you used to create this vid? Or is it really all by hand? So clear? so smooth?
Thank you Rene. I used VideoScribe, and for some videos I use my Wacom pad as well.
Super!
Thank you! Cheers!
Awsome!
Thank you!
I have posted the next video in the series here - ruclips.net/video/52MFjdGH20o/видео.html
I hope you will find it useful
Stellar
Thank you! 🙏🏻
Thanks!!!
Thanks for commenting!
Cool!
Thank you Nikita! Please share :)
I love you dude
Thank you 😇
dawg why is it in light mode 😭
Well it's a whiteboard :) the CLI is in dark mode
how about tags? please create a video about tags.
Hi Rogelio, thanks for your question!
It actually makes sense to refer to tags in a video, but the concept is too short to dedicate a full video for them - as tags are just named reference to a commit, and that reference doesn't (automatically) change with additional commits.
That is, let's say we have a branch `my_branch` which points to `commit_1`. Now we make another commit `commit_2` which points to `commit_1`, so `git` will automatially update `my_branch` to point to `commit_2`.
On the other hand, if we use `git tag my_tag` to create a tag pointing to `commit_1`, then it will still point to `commit_1` even if we introduce additional commits.
I hope that makes sense :)