You can find the lecture notes and exercises for this lecture at missing.csail.mit.edu/2020/ve... Help us caption & translate this video! amara.org/v/C1Ef9/
Жүктеу.....
Пікірлер: 309
@braveshine25793 жыл бұрын
31:42 git add . , git commit -m , git log , git cat-file -p 32:47 git commit -a , git add :/ 35:23 git log --all --graph --decorate 36:12 git status (have staged or commited or not) 41:41 git-checkout -f (switch branch) 43:11 git diff hello.txt (show the changes in the file compared to the last commit) 43:28 git diff hello.txt (compared to the branch) 44:33 git diff HEAD hello.txt 46:22 git diff git commit -m / git commit 59:37 dog points to the branch you're trying to merge. 1:04:17 git init --bare (initiatialize empty git repo in current dir), 1:04:20 git remote add , git push : 1:07:54 git clone 1:10:33 git branch --set-upstream-to=origin/master 1:18:12 git blame .config.yml (who edit the file on which commit message by who, when) , git show (to get line changes like git diff) 1:19:22 git stash (changes saved somewhere) , git stash pop (get saved back) 1:20:46 git bisect 1:21:48 git ignore (put file name or *.extension)
@jh07204 жыл бұрын
This is by far the best video I've seen on git. There's so many terrible git videos on youtube 🤦🤦🤦
@bool2max
4 жыл бұрын
well, it is by MIT lecturers so no surprise there
@steveroger4570
4 жыл бұрын
Those terrible video tutorial probably are made for getting ads revenue, where the presenter might not even know or good at what they want to teach, and those terrible video are probably similar because they might refer to the same material from invalid or bad source (that's why valid good sources and citations are so important).
@je9625
4 жыл бұрын
Yes but it implicitly requires that that you have previous knowledge of git.
@LesterFD
4 жыл бұрын
instead of watching "so many terrible git videos" it's also possible to read the doc or do hands on tutorials
@amannucg
4 жыл бұрын
@@LesterFD Reading the docs is no substitute for videos such as this, or other deliberately didactic material. Docs are useful for reference, but do not do a good job of explaining the bigger picture, or the right mental models to use. Learning new systems is hard, because everyone reaches this point with their own thoughts and expectations, and the docs may or may not align. (Look up the video where Linux evangelizes git to the Google crowd, I think in 2007. The introducer says "no-one understands this"). One cannot memorize the entire documentation set, make all the needed logical connections, fill out the missing details, etc. For creations like git, human instruction is a big time saver. I write my own notes as I learn, to steer my mental models in the right direction. Stackexchange has been incredibly valuable. Git has its own concept of "time", of what version control means, etc. These are explained to some degree in the documentation intros, but it can be a challenge to understand. The writer of the documentation always makes some assumptions about the audience, and cannot (or will not) explain everything to its last logical detail.
@harshteck4 жыл бұрын
This proves first "It's the teacher who teaches" and then "It's the student who learns ". The way the video is articulated shows how much effort the faculty has put in. Kudos to the teacher and to all the students you finally understood GIT from its core.
@leewesley480
2 жыл бұрын
you probably dont give a damn but does someone know of a method to log back into an instagram account? I stupidly lost the password. I love any help you can give me!
@gannongraysen9749
2 жыл бұрын
@Lee Wesley instablaster =)
@leewesley480
2 жыл бұрын
@Gannon Graysen I really appreciate your reply. I got to the site through google and im trying it out now. Looks like it's gonna take quite some time so I will get back to you later when my account password hopefully is recovered.
@leewesley480
2 жыл бұрын
@Gannon Graysen It did the trick and I actually got access to my account again. I'm so happy! Thank you so much you really help me out :D
@gannongraysen9749
2 жыл бұрын
@Lee Wesley you are welcome :)
@BartVandewoestyne9 ай бұрын
Definitely one of the better introductions to git that I have seen. In one and a half hour, Anish succeeds in explaining the theoretical model behind git, and then goes from basic git usage over branching and merging to using remotes. And this all in 85 minutes. Well done!👍
@guccifer78742 жыл бұрын
This is exactly the kind of lecture on Git that I was looking for. Too many of these "crash courses" just settle on teaching you the cmds and that's it. I think it's crucial to have an intuitive understanding of what's happening internally within git. The absolute best advice I could give someone trying to climb the otherwise steep initial learning curve, is to first fully comprehend the simple data/object model: how the repository tree is represented and versions of it are maintained; and the use of SHA-1 hashes to represent both file/object content, and most importantly how a hash (as a commit) handle uniquely defines a versioned state of the repo tree. I don't believe this point can be stressed enough: without an intuitive high-level understanding of what's going on internally, the task of learning GIT degenerates into a exercise of memorizing seemingly unrelated command invocations.
@danielgray8053
Жыл бұрын
agree.
@nadaelnokaly4950
Жыл бұрын
this is exactly what happened with me and so I ended up, after more than 4 years in Tech, to re-learn git every month and feel the same stupidity😢
@cat-.-
Жыл бұрын
Although I would bash the git CLI api as much as the next person, I struggle to find a way to fundamentally improve it. I guess git is trying to give you really fine grained control over what happens with your repo, and it's hard to design a concise API to do that
@marcodem3
Ай бұрын
spot on
@chilling000003 жыл бұрын
These students actually ask questions I want to ask, it feels so good...
@waseemkntar25664 жыл бұрын
It was a unique lecture, you didn't just do commands like others but you explain the data model of git and things behind it. Thank you for this really missing things.
@chaus08084 жыл бұрын
The video suggested on my KZread and I wonder why but I ended up seeing it complete. First time I don't curse KZread for random recommendations.
@enraycious
4 жыл бұрын
I started getting agricultural automation, beginner rollerskating and "electro swing" dancers... go figure. Cool tho, watched a few
@manarshawkey3 жыл бұрын
Great lecture. The first 25 minutes is an excellent example of a systems design interview question :')
@DutchmanDavid4 жыл бұрын
11:08 I love how the arrows point in the correct way. Too many examples make the arrows point into the direction of the future. A new snapshot is based on an older one, thus the arrow should point towards the older snapshot!
@takatamiyagawa5688
4 жыл бұрын
Yeah, I learned that from git-scm.com/book/en/v2/Git-Branching-Branches-in-a-Nutshell . Some things (like git log's output) make a lot more sense when you know that each commit has pointers to its parents, but not to its children.
@wesselbindt
3 жыл бұрын
Either way sounds logical to me. I mean, if you think of it as kind of a family tree, arrows in the other direction makes sense.
@docteurklein4 жыл бұрын
At 13:35, it is said that the code of one branch could influence the behaviour of the code in another branch, and you wouldn't know before merging those branches. While this is very true, it is *not* necessarily a merge conflict. It could very well be fast-forwarded (ie. the 2 branches never changed the same line of code) and yet a new bug might occur. Only continuous automated tests can detect those defects, not merge conflicts.
@VamsiMohanKrishnaVadrevu3 жыл бұрын
This is the best Git Tutorial I've ever seen. And I've been using Git for more than a year with very little confidence. This gives me immense confidence in handling all the changes that my team does.
@Kaltinril4 жыл бұрын
Used git for years, interesting to learn about the data model and the pointers.
@tjbruno55004 жыл бұрын
I just wanted to give a sincere thank you for uploading these lectures!
@6kwecky63 жыл бұрын
Love the bottom to top approach of teaching this. Makes me more ready to deal with more complicated errors, and debugging
@fergusonshuai3813 жыл бұрын
Learned many of those intricacies the hard way at work. It's really good to have someone pulling them together for you.
@DutchmanDavid4 жыл бұрын
Here's my explanation of a hash function: You input some data and the output is a hexadecimal number. If you change the input a little bit, the output will look wildly different. You can use this to confirm you have an unchanged file from a website. If I have program P and I say the hash is X, you can download it, recreate the hash and if you *don't* get X, you'll know it's an edited file. Well known algortihms are MD5 (outdated), SHA1 (outdated, though still often used), SHA-256 (current), though there are many more algorithms. An input/output example for SHA-256 is: input: Hello World! output: 7f83b1657ff1fc53b92dc18148a1d65dfc2d4b1fa3d677284addd200126d9069 input: Hello, World! output: dffd6021bb2bd5b0af676290809ec3a53191dd81c7f70a4b28688a362182986f As you can see, the hashes differ wildly, even though I only added a comma to the text!
@ezio934
4 жыл бұрын
Pretty much true but a hash function is defined as a function which take some data. Play with its bytes and returns a hash. Its not necessary to return a hexadecimal value. But a each input should have a unique and consistent hash.
@davidjohnston4240
4 жыл бұрын
@@ezio934 There are some relatively important details - The input data size to a hash function is arbitrary but the output size is a fixed number of bits. The algorithm should exhibit 1st preimage resistance (given y, it is difficult to find an x such that h(x) = y), 2nd preimage resistance (given x, it is difficult to find a second preimage x′ ≠ x such that h(x) = h(x′)) and collision resistance (it is computationally infeasible to find any two distinct inputs x, x′ that hash to the same output). Sadly SHA-1 Which is used by git does not have all these properties.
@treeman_mj3 жыл бұрын
I’ve had just enough git skills to get by in the job and this video has helped fill in several missing gaps. Worth watching this video and thanks
@shivamrishi93494 жыл бұрын
This really made me appreciate the genius of git and version control systems
@takshpatel8109 Жыл бұрын
This is the best video for git. Totally worth it. Whenever I have to recommend someone for git,I'll recommend this and say don't watch any video from KZread until you finish this one
@manbingable4 жыл бұрын
this video explains the core of git. it is really really good
@francescoyang3 жыл бұрын
I have been using Github for years but this was useful to actually know what's happening behind the commands, thank you so much!
@seank91223 жыл бұрын
have checked 10+ git tutorial on YT and this is by far the best one with no doubt
@Chiramisudo4 жыл бұрын
What are your favorite commands from this lecture? I found all the best stuff to be in the last 10 minutes. My favorites are: *git add -p * (interactively stage changed hunks of a file rather than the entire file) *git show * (shows commit message and changes) *git bisect* (binary search commit history to find where a bug or change happened)
@casedup3 жыл бұрын
All i can say is wow. Wanted to skip over this as i know a little about git but the way you explained the inner workings i really don't see how i can go wrong ever. Great foundation to start with look forward to re watching and studying this video and going thru the notes. Thanks!!!
@motilalchavhan70214 жыл бұрын
This is the best demonstration of git mostly people starts with commands and make some repos on github which is a very abstracted way of teaching git to anyone but in this demonstration they also explained the underlaying structure of git which makes it more intuitive to learn. I wonder why people start directly with commands. This is the perfect way to demonstrate the git to a beginner.
@skfjhsdjklfhsdjlfhsd4 жыл бұрын
Wish I could "like" this video several times... Thank you for this training!
@ghostfjdgcsusvsgsj2 жыл бұрын
This has been extremely helpful to me as a beginner. I am grateful for having access to such a great resource.
@andiuptown1711
7 ай бұрын
Update? :)
@treeislife4 жыл бұрын
I have been using git for a while, but I found this lecture to be very insightful about git internal data structure. That pseudocode was great.
@gueyenono Жыл бұрын
Git has never made sense to me like it does now (despite using for several years) thanks to this video. I plan to rewatch it without coding along just to further cement all this in me. Wonderful job.
@toby9999
10 ай бұрын
I have been "using" Git for years. Struggling would be a better term. It's so bad that I'm considering getting out of software development. Had enough. Git is making my life hell. It's a massive time waster. It is completely unintuitive.
@gururaghav69464 жыл бұрын
Very informative for someone who is just starting off with Git and GitHub. Thank you very much.
@sebastianbraun24734 жыл бұрын
No Joke, this is the best GIT-Video I have ever seen.
@mrMoneyTrooper3 жыл бұрын
One of the best Git tutorial available on YT.
@aavocadoToast4 жыл бұрын
This course needs to be in every university...
@jake3111
3 жыл бұрын
or just online for free oh wait
@ThunderAppeal
3 жыл бұрын
Probably, if the universities are populated by idiots like you.
@jakobwachter5181
3 жыл бұрын
@@ThunderAppeal These lectures are from MIT.
@ThunderAppeal
3 жыл бұрын
@@jakobwachter5181 I rest my case.
@jakobwachter5181
3 жыл бұрын
@@ThunderAppeal I would be very interested to see how your pedigree absolves you from recognizing that even very intelligent people can take a lot from these lectures.
@abhishekshah114 жыл бұрын
"In pseudocode this looks like ..." and proceeds to write perfectly valid python code lol.
@Ragnarok540
4 жыл бұрын
That's why Python is so powerful for newbies.
@abaundwal
4 жыл бұрын
Wuuut? Lol.
@ProgrammingMadeEZ
4 жыл бұрын
Back in the day the "pseudocode" was BASIC.
@spicybaguette7706
4 жыл бұрын
Any pseudo code is basically python
@konstantinrebrov675
4 жыл бұрын
@@spicybaguette7706 No, not all pseudocode. There is C like pseudocode also.
@vigneshpugaz83083 жыл бұрын
Probably the 1st university to have a course on git and GitHub
@alfredopazvalderrama19354 жыл бұрын
thank you so much for upload this video, I just share it with my students and next time I will start to explain GIT from the model!
@myfavouritecolorisgreen4 жыл бұрын
my university doesn't teach git or vim and this git lecture has been really helpful. also loved the vim integration with git!
@harshivpatel6238
4 жыл бұрын
There are universities that team VIM and GIT ?
@primekrunkergamer188
3 жыл бұрын
why on earth would u learn vim?
@epicbeans
3 ай бұрын
i LOVE vim and neovim its like my son
@jaminoes_2 жыл бұрын
The second part is the typical professor going at his owns speed without making eye contact. I was so hopeful.
@rajibsarker37294 жыл бұрын
this is by far the best video on git.
@surendrabisht25237 ай бұрын
I don't think any tutorial on git is upto this level. Thanks for detailing the commands and their actual syntax with clear understanding.
@ashrasmun14 жыл бұрын
unbelievably useful lecture. 1,5h and I can rightly call myself a beginner :)
@marcelstrzalka4 жыл бұрын
An excellent lecture on git basics, I really liked it.
@dochowell3 жыл бұрын
This long-time git user learned something new about git today. Kudos!
@MrSaurajyotikar4 жыл бұрын
I have been studying the pro git book but has been not efficient enough in learning. Following along the basic tasks of git with this video gives me a very speedy overview of the branching and merging. Now I feel confident to get back to the pro git book and learn the details. Thanks for the tutorial, Anish!
@thomasip9938
4 жыл бұрын
Make sure to also practice using git in real projects. Reading and using git is very different.
@Hitz90923 жыл бұрын
Very useful tutorial on git especially in terms of understanding the data model, and remote interacton. Thanks !
@lkdhy-rc7ep3 ай бұрын
How come this is so fantastic ... I'm fully impressed.
@raunakkbanerjee9016 Жыл бұрын
The demonstration of branching and merging was beautiful
@prosy17194 жыл бұрын
This was really a big pleasure to watch this nice lecture. Thank you so much.
@nav-ks6qj3 жыл бұрын
The lecture was informative with lots of repository in depth ways to grab data efficient time saving which I really like grab a certain command and everything's there at your disposal also ,this no where near what it's capable of man god stuff
@tipeon4 жыл бұрын
Nice presentation. I'll definitely steal a few ideas next time I train someone on git.
@pepebawagan67144 жыл бұрын
closed captions at 16:07: [Applause] lol
@zikaperic21334 жыл бұрын
It is very important making meaningful git messages, yet let's add "x" as message :)
@mikepavelhsu3 жыл бұрын
Love this lecture, have been using Git/ GitHub for years but still don't know some of the basic idea.
@godDIEmanLIVE4 жыл бұрын
This is awesome. I've just cloned my GitHub repo of my Qt hobby project to my laptop and commited some test changes. I think using git with the command line is better than say the Qt Creator IDE integration since the former is universal. Great introduction that successfully got me started.
@misterbeach8826
3 жыл бұрын
professional projects do not use the console, or command line. actually, in bigger projects, with pro teams, they will force you to use git tools that show you the git flow graph. only noobs work with the console. the console is great if something messes up, but otherwise you are prone to make mistakes, you do not see your whole project and team progress, where git flow issues might have happened in the mean time, and so on. so, if you can, grab sourcetree (not those awful gui tools from github), or any git tool with a graph, and learn to use it, or else your cto or tech lead will complain. git is not rocket science. also, in a real project with potentially dozens or hundreds devs, you will never be allowed to use many git features as described in this video, regardless of whether you are a junior or senior. for instance, in many projects rebase and revert are forbidden, etc.
@godDIEmanLIVE
3 жыл бұрын
@@misterbeach8826 Linux kernel devs are noobs because they use git console? I think it's just a matter of preference or a project mandates tools, as you said. No harm in trying it out for a hobby project though. Clicking buttons in a GUI doesn't really teach me anything about how things work.
@TheRealFFS
3 жыл бұрын
@@godDIEmanLIVE How's pressing buttons any different though? If you press the "Pull" button, all it does is send a "git pull" command, so I don't see how one teaches you more than the other (unless you're talking about advanced stuff). There are two main differences (I can think of) between using the console or a GUI: 1. Like you've said, the console is universal. (Though you could argue that GUIs can also be universal, as long as they're 3rd party, such as Sourcetree.) 2. The console gives you more control. With a GUI you're basically stuck with whatever that GUI offers. Good ones, however, cover 95% of your needs (just throwing in some random number). Sometimes it doesn't cover a use case, and then you eventually want to use the console. The advantages of a GUI are self-explanatory ("visual"). I prefer to use a GUI (if Jetbrains IDE, the integrated one, otherwise Sourcetree). Others at my workplace mostly use the console, but they occassionally use GUI features, too (e.g. when viewing the commit history of a class or method). But yeah, I wouldn't call people who use the command line noobs. I'd argue the opposite tbh.
@yavartaghipourazar49673 жыл бұрын
One of the best lectures on git, thanks for sharing
@unisos Жыл бұрын
I almost lost hope in understanding version control through git. Until i found this! Thank you very much sir
@salman44304 жыл бұрын
Thanks for adding the lecture notes!
@mihirravitej3 жыл бұрын
This lecture is pure gold. Thank you so much!!
@elliotho30152 жыл бұрын
Brilliant Lecture! This is the best lecture about Git I've learned :D
@TamLe-sh2ru4 жыл бұрын
I dont know why this in my recommendation, but thanks you very much sir.
@JannisAdmek4 жыл бұрын
marvelous lecture, was perfect for my commute just now.
@XDBjoernXD4 жыл бұрын
Very good lecture. The explanations are spot on!
@jimitgohel3 жыл бұрын
This is gold. Perfectly explained.
@sriharidatta53774 ай бұрын
For any one learning, use git graph extension in vs code that will give a intuitive graphical view of all git commands.
@BlownBones4 жыл бұрын
I don't usually comment but I had to say it. This is good content. Very Helpful!
@rraaiiyyaann4 жыл бұрын
Amazing.. thank you for the upload, this really helped me a lot
@mybigbeak3 жыл бұрын
Thankyou. I finally feel like I get what's going on in git
@ankurshukla4944 жыл бұрын
Such a nice video, learnt new things. Thanks a lot, totally deserve a +1.
@uuu123432 жыл бұрын
"On a higher level....nevermind, I think this is sufficient - you can ask me afterwards" - Hash Functions I relate to that so much when explaining, THAT becomes so big, really quickly
@N7Tonik3 жыл бұрын
Thank u! Learned a lot. Whole different picture of git now
@shawnxihaowu7638 Жыл бұрын
Thank you so much for this lecture!! The lecturer is so awesome!!
@edessarc3 жыл бұрын
excellent, it helped me a lot as a newbie in Git
@fest1ck4762 жыл бұрын
This is the best way to start learning git.
@TroyArrandale3 жыл бұрын
Great content git should be taught at every university!
@cisconetworksandcodingacad27494 жыл бұрын
good video , helped me a lot for learning python and git
@andrewmurdoch72463 жыл бұрын
You should review tags, signing and audits in the basic GIT lessons. It's REALLY important for developers to understand why they need to sign their code and sign their commits, not to mention carrying a proper audit across the GIT tree. Otherwise awesome GIT lecture.
@FallenStarFeaturesАй бұрын
TL;DW: git status TL;DW: You are in a maze of twisty little passages, all alike.
@NirdeshM4 жыл бұрын
My sincere thank you for the lectures, this is so far the best material on git.
@szabonandi4 жыл бұрын
Very good lecture, thanks a lot.
@nidhinsnair3 жыл бұрын
This is gold. Learned a lot.
@mobilecodemedia47113 жыл бұрын
3:48 Git Bisect has saved me tons of time.
@HOTVIVEK14DEC4 жыл бұрын
keep up the good work, really good content
@chakreshsingh3 жыл бұрын
I wish I had watched this before. Thank you!
@tileq3 жыл бұрын
This lecture is a masterpiece.
@StrangeIndeed3 жыл бұрын
best intro to git ever, love that guy c:
@jhduan3823 жыл бұрын
It's amazing, thank you for the upload
@geraldito43 жыл бұрын
Excellent Lecture
@moazelsawaf20003 жыл бұрын
Thanks a lot for this rich lecture ❤
@mmrk_3 жыл бұрын
Great video thanks for sharing it with us.
@user-wb2ko3np9l2 жыл бұрын
Thank you! Really good tutorial
@user-ff9oq6jg9c2 жыл бұрын
Thanks for lecture for beginners it was really helpful
@user-ff9oq6jg9c
2 жыл бұрын
why don't we have to write 'git commit' after 'git add animal.py' when merging dog with master? 1:00:45
@AlexSchmid-TheAceofSpades3 жыл бұрын
I need to show my dev team this. Lordy, they need it.
@tkmf3n2 жыл бұрын
best git tutorial ever!!
@nyrtzi4 жыл бұрын
I thought that Subversion for example was all about the snapshots which is why it didn't record as much information for solving merge conflicts while Mercurial and Git don't think in terms of snapshots but changesets which works better with merging.
@mohamedabdelmoneim57215 ай бұрын
Great lecture, thanks
@stoneliu5575 Жыл бұрын
Thanks for the lecture.
@una19753 жыл бұрын
This should be the 1st course for every group coding assignment. In a team without version control is basically a hot mess.
Пікірлер: 309
31:42 git add . , git commit -m , git log , git cat-file -p 32:47 git commit -a , git add :/ 35:23 git log --all --graph --decorate 36:12 git status (have staged or commited or not) 41:41 git-checkout -f (switch branch) 43:11 git diff hello.txt (show the changes in the file compared to the last commit) 43:28 git diff hello.txt (compared to the branch) 44:33 git diff HEAD hello.txt 46:22 git diff git commit -m / git commit 59:37 dog points to the branch you're trying to merge. 1:04:17 git init --bare (initiatialize empty git repo in current dir), 1:04:20 git remote add , git push : 1:07:54 git clone 1:10:33 git branch --set-upstream-to=origin/master 1:18:12 git blame .config.yml (who edit the file on which commit message by who, when) , git show (to get line changes like git diff) 1:19:22 git stash (changes saved somewhere) , git stash pop (get saved back) 1:20:46 git bisect 1:21:48 git ignore (put file name or *.extension)
This is by far the best video I've seen on git. There's so many terrible git videos on youtube 🤦🤦🤦
@bool2max
4 жыл бұрын
well, it is by MIT lecturers so no surprise there
@steveroger4570
4 жыл бұрын
Those terrible video tutorial probably are made for getting ads revenue, where the presenter might not even know or good at what they want to teach, and those terrible video are probably similar because they might refer to the same material from invalid or bad source (that's why valid good sources and citations are so important).
@je9625
4 жыл бұрын
Yes but it implicitly requires that that you have previous knowledge of git.
@LesterFD
4 жыл бұрын
instead of watching "so many terrible git videos" it's also possible to read the doc or do hands on tutorials
@amannucg
4 жыл бұрын
@@LesterFD Reading the docs is no substitute for videos such as this, or other deliberately didactic material. Docs are useful for reference, but do not do a good job of explaining the bigger picture, or the right mental models to use. Learning new systems is hard, because everyone reaches this point with their own thoughts and expectations, and the docs may or may not align. (Look up the video where Linux evangelizes git to the Google crowd, I think in 2007. The introducer says "no-one understands this"). One cannot memorize the entire documentation set, make all the needed logical connections, fill out the missing details, etc. For creations like git, human instruction is a big time saver. I write my own notes as I learn, to steer my mental models in the right direction. Stackexchange has been incredibly valuable. Git has its own concept of "time", of what version control means, etc. These are explained to some degree in the documentation intros, but it can be a challenge to understand. The writer of the documentation always makes some assumptions about the audience, and cannot (or will not) explain everything to its last logical detail.
This proves first "It's the teacher who teaches" and then "It's the student who learns ". The way the video is articulated shows how much effort the faculty has put in. Kudos to the teacher and to all the students you finally understood GIT from its core.
@leewesley480
2 жыл бұрын
you probably dont give a damn but does someone know of a method to log back into an instagram account? I stupidly lost the password. I love any help you can give me!
@gannongraysen9749
2 жыл бұрын
@Lee Wesley instablaster =)
@leewesley480
2 жыл бұрын
@Gannon Graysen I really appreciate your reply. I got to the site through google and im trying it out now. Looks like it's gonna take quite some time so I will get back to you later when my account password hopefully is recovered.
@leewesley480
2 жыл бұрын
@Gannon Graysen It did the trick and I actually got access to my account again. I'm so happy! Thank you so much you really help me out :D
@gannongraysen9749
2 жыл бұрын
@Lee Wesley you are welcome :)
Definitely one of the better introductions to git that I have seen. In one and a half hour, Anish succeeds in explaining the theoretical model behind git, and then goes from basic git usage over branching and merging to using remotes. And this all in 85 minutes. Well done!👍
This is exactly the kind of lecture on Git that I was looking for. Too many of these "crash courses" just settle on teaching you the cmds and that's it. I think it's crucial to have an intuitive understanding of what's happening internally within git. The absolute best advice I could give someone trying to climb the otherwise steep initial learning curve, is to first fully comprehend the simple data/object model: how the repository tree is represented and versions of it are maintained; and the use of SHA-1 hashes to represent both file/object content, and most importantly how a hash (as a commit) handle uniquely defines a versioned state of the repo tree. I don't believe this point can be stressed enough: without an intuitive high-level understanding of what's going on internally, the task of learning GIT degenerates into a exercise of memorizing seemingly unrelated command invocations.
@danielgray8053
Жыл бұрын
agree.
@nadaelnokaly4950
Жыл бұрын
this is exactly what happened with me and so I ended up, after more than 4 years in Tech, to re-learn git every month and feel the same stupidity😢
@cat-.-
Жыл бұрын
Although I would bash the git CLI api as much as the next person, I struggle to find a way to fundamentally improve it. I guess git is trying to give you really fine grained control over what happens with your repo, and it's hard to design a concise API to do that
@marcodem3
Ай бұрын
spot on
These students actually ask questions I want to ask, it feels so good...
It was a unique lecture, you didn't just do commands like others but you explain the data model of git and things behind it. Thank you for this really missing things.
The video suggested on my KZread and I wonder why but I ended up seeing it complete. First time I don't curse KZread for random recommendations.
@enraycious
4 жыл бұрын
I started getting agricultural automation, beginner rollerskating and "electro swing" dancers... go figure. Cool tho, watched a few
Great lecture. The first 25 minutes is an excellent example of a systems design interview question :')
11:08 I love how the arrows point in the correct way. Too many examples make the arrows point into the direction of the future. A new snapshot is based on an older one, thus the arrow should point towards the older snapshot!
@takatamiyagawa5688
4 жыл бұрын
Yeah, I learned that from git-scm.com/book/en/v2/Git-Branching-Branches-in-a-Nutshell . Some things (like git log's output) make a lot more sense when you know that each commit has pointers to its parents, but not to its children.
@wesselbindt
3 жыл бұрын
Either way sounds logical to me. I mean, if you think of it as kind of a family tree, arrows in the other direction makes sense.
At 13:35, it is said that the code of one branch could influence the behaviour of the code in another branch, and you wouldn't know before merging those branches. While this is very true, it is *not* necessarily a merge conflict. It could very well be fast-forwarded (ie. the 2 branches never changed the same line of code) and yet a new bug might occur. Only continuous automated tests can detect those defects, not merge conflicts.
This is the best Git Tutorial I've ever seen. And I've been using Git for more than a year with very little confidence. This gives me immense confidence in handling all the changes that my team does.
Used git for years, interesting to learn about the data model and the pointers.
I just wanted to give a sincere thank you for uploading these lectures!
Love the bottom to top approach of teaching this. Makes me more ready to deal with more complicated errors, and debugging
Learned many of those intricacies the hard way at work. It's really good to have someone pulling them together for you.
Here's my explanation of a hash function: You input some data and the output is a hexadecimal number. If you change the input a little bit, the output will look wildly different. You can use this to confirm you have an unchanged file from a website. If I have program P and I say the hash is X, you can download it, recreate the hash and if you *don't* get X, you'll know it's an edited file. Well known algortihms are MD5 (outdated), SHA1 (outdated, though still often used), SHA-256 (current), though there are many more algorithms. An input/output example for SHA-256 is: input: Hello World! output: 7f83b1657ff1fc53b92dc18148a1d65dfc2d4b1fa3d677284addd200126d9069 input: Hello, World! output: dffd6021bb2bd5b0af676290809ec3a53191dd81c7f70a4b28688a362182986f As you can see, the hashes differ wildly, even though I only added a comma to the text!
@ezio934
4 жыл бұрын
Pretty much true but a hash function is defined as a function which take some data. Play with its bytes and returns a hash. Its not necessary to return a hexadecimal value. But a each input should have a unique and consistent hash.
@davidjohnston4240
4 жыл бұрын
@@ezio934 There are some relatively important details - The input data size to a hash function is arbitrary but the output size is a fixed number of bits. The algorithm should exhibit 1st preimage resistance (given y, it is difficult to find an x such that h(x) = y), 2nd preimage resistance (given x, it is difficult to find a second preimage x′ ≠ x such that h(x) = h(x′)) and collision resistance (it is computationally infeasible to find any two distinct inputs x, x′ that hash to the same output). Sadly SHA-1 Which is used by git does not have all these properties.
I’ve had just enough git skills to get by in the job and this video has helped fill in several missing gaps. Worth watching this video and thanks
This really made me appreciate the genius of git and version control systems
This is the best video for git. Totally worth it. Whenever I have to recommend someone for git,I'll recommend this and say don't watch any video from KZread until you finish this one
this video explains the core of git. it is really really good
I have been using Github for years but this was useful to actually know what's happening behind the commands, thank you so much!
have checked 10+ git tutorial on YT and this is by far the best one with no doubt
What are your favorite commands from this lecture? I found all the best stuff to be in the last 10 minutes. My favorites are: *git add -p * (interactively stage changed hunks of a file rather than the entire file) *git show * (shows commit message and changes) *git bisect* (binary search commit history to find where a bug or change happened)
All i can say is wow. Wanted to skip over this as i know a little about git but the way you explained the inner workings i really don't see how i can go wrong ever. Great foundation to start with look forward to re watching and studying this video and going thru the notes. Thanks!!!
This is the best demonstration of git mostly people starts with commands and make some repos on github which is a very abstracted way of teaching git to anyone but in this demonstration they also explained the underlaying structure of git which makes it more intuitive to learn. I wonder why people start directly with commands. This is the perfect way to demonstrate the git to a beginner.
Wish I could "like" this video several times... Thank you for this training!
This has been extremely helpful to me as a beginner. I am grateful for having access to such a great resource.
@andiuptown1711
7 ай бұрын
Update? :)
I have been using git for a while, but I found this lecture to be very insightful about git internal data structure. That pseudocode was great.
Git has never made sense to me like it does now (despite using for several years) thanks to this video. I plan to rewatch it without coding along just to further cement all this in me. Wonderful job.
@toby9999
10 ай бұрын
I have been "using" Git for years. Struggling would be a better term. It's so bad that I'm considering getting out of software development. Had enough. Git is making my life hell. It's a massive time waster. It is completely unintuitive.
Very informative for someone who is just starting off with Git and GitHub. Thank you very much.
No Joke, this is the best GIT-Video I have ever seen.
One of the best Git tutorial available on YT.
This course needs to be in every university...
@jake3111
3 жыл бұрын
or just online for free oh wait
@ThunderAppeal
3 жыл бұрын
Probably, if the universities are populated by idiots like you.
@jakobwachter5181
3 жыл бұрын
@@ThunderAppeal These lectures are from MIT.
@ThunderAppeal
3 жыл бұрын
@@jakobwachter5181 I rest my case.
@jakobwachter5181
3 жыл бұрын
@@ThunderAppeal I would be very interested to see how your pedigree absolves you from recognizing that even very intelligent people can take a lot from these lectures.
"In pseudocode this looks like ..." and proceeds to write perfectly valid python code lol.
@Ragnarok540
4 жыл бұрын
That's why Python is so powerful for newbies.
@abaundwal
4 жыл бұрын
Wuuut? Lol.
@ProgrammingMadeEZ
4 жыл бұрын
Back in the day the "pseudocode" was BASIC.
@spicybaguette7706
4 жыл бұрын
Any pseudo code is basically python
@konstantinrebrov675
4 жыл бұрын
@@spicybaguette7706 No, not all pseudocode. There is C like pseudocode also.
Probably the 1st university to have a course on git and GitHub
thank you so much for upload this video, I just share it with my students and next time I will start to explain GIT from the model!
my university doesn't teach git or vim and this git lecture has been really helpful. also loved the vim integration with git!
@harshivpatel6238
4 жыл бұрын
There are universities that team VIM and GIT ?
@primekrunkergamer188
3 жыл бұрын
why on earth would u learn vim?
@epicbeans
3 ай бұрын
i LOVE vim and neovim its like my son
The second part is the typical professor going at his owns speed without making eye contact. I was so hopeful.
this is by far the best video on git.
I don't think any tutorial on git is upto this level. Thanks for detailing the commands and their actual syntax with clear understanding.
unbelievably useful lecture. 1,5h and I can rightly call myself a beginner :)
An excellent lecture on git basics, I really liked it.
This long-time git user learned something new about git today. Kudos!
I have been studying the pro git book but has been not efficient enough in learning. Following along the basic tasks of git with this video gives me a very speedy overview of the branching and merging. Now I feel confident to get back to the pro git book and learn the details. Thanks for the tutorial, Anish!
@thomasip9938
4 жыл бұрын
Make sure to also practice using git in real projects. Reading and using git is very different.
Very useful tutorial on git especially in terms of understanding the data model, and remote interacton. Thanks !
How come this is so fantastic ... I'm fully impressed.
The demonstration of branching and merging was beautiful
This was really a big pleasure to watch this nice lecture. Thank you so much.
The lecture was informative with lots of repository in depth ways to grab data efficient time saving which I really like grab a certain command and everything's there at your disposal also ,this no where near what it's capable of man god stuff
Nice presentation. I'll definitely steal a few ideas next time I train someone on git.
closed captions at 16:07: [Applause] lol
It is very important making meaningful git messages, yet let's add "x" as message :)
Love this lecture, have been using Git/ GitHub for years but still don't know some of the basic idea.
This is awesome. I've just cloned my GitHub repo of my Qt hobby project to my laptop and commited some test changes. I think using git with the command line is better than say the Qt Creator IDE integration since the former is universal. Great introduction that successfully got me started.
@misterbeach8826
3 жыл бұрын
professional projects do not use the console, or command line. actually, in bigger projects, with pro teams, they will force you to use git tools that show you the git flow graph. only noobs work with the console. the console is great if something messes up, but otherwise you are prone to make mistakes, you do not see your whole project and team progress, where git flow issues might have happened in the mean time, and so on. so, if you can, grab sourcetree (not those awful gui tools from github), or any git tool with a graph, and learn to use it, or else your cto or tech lead will complain. git is not rocket science. also, in a real project with potentially dozens or hundreds devs, you will never be allowed to use many git features as described in this video, regardless of whether you are a junior or senior. for instance, in many projects rebase and revert are forbidden, etc.
@godDIEmanLIVE
3 жыл бұрын
@@misterbeach8826 Linux kernel devs are noobs because they use git console? I think it's just a matter of preference or a project mandates tools, as you said. No harm in trying it out for a hobby project though. Clicking buttons in a GUI doesn't really teach me anything about how things work.
@TheRealFFS
3 жыл бұрын
@@godDIEmanLIVE How's pressing buttons any different though? If you press the "Pull" button, all it does is send a "git pull" command, so I don't see how one teaches you more than the other (unless you're talking about advanced stuff). There are two main differences (I can think of) between using the console or a GUI: 1. Like you've said, the console is universal. (Though you could argue that GUIs can also be universal, as long as they're 3rd party, such as Sourcetree.) 2. The console gives you more control. With a GUI you're basically stuck with whatever that GUI offers. Good ones, however, cover 95% of your needs (just throwing in some random number). Sometimes it doesn't cover a use case, and then you eventually want to use the console. The advantages of a GUI are self-explanatory ("visual"). I prefer to use a GUI (if Jetbrains IDE, the integrated one, otherwise Sourcetree). Others at my workplace mostly use the console, but they occassionally use GUI features, too (e.g. when viewing the commit history of a class or method). But yeah, I wouldn't call people who use the command line noobs. I'd argue the opposite tbh.
One of the best lectures on git, thanks for sharing
I almost lost hope in understanding version control through git. Until i found this! Thank you very much sir
Thanks for adding the lecture notes!
This lecture is pure gold. Thank you so much!!
Brilliant Lecture! This is the best lecture about Git I've learned :D
I dont know why this in my recommendation, but thanks you very much sir.
marvelous lecture, was perfect for my commute just now.
Very good lecture. The explanations are spot on!
This is gold. Perfectly explained.
For any one learning, use git graph extension in vs code that will give a intuitive graphical view of all git commands.
I don't usually comment but I had to say it. This is good content. Very Helpful!
Amazing.. thank you for the upload, this really helped me a lot
Thankyou. I finally feel like I get what's going on in git
Such a nice video, learnt new things. Thanks a lot, totally deserve a +1.
"On a higher level....nevermind, I think this is sufficient - you can ask me afterwards" - Hash Functions I relate to that so much when explaining, THAT becomes so big, really quickly
Thank u! Learned a lot. Whole different picture of git now
Thank you so much for this lecture!! The lecturer is so awesome!!
excellent, it helped me a lot as a newbie in Git
This is the best way to start learning git.
Great content git should be taught at every university!
good video , helped me a lot for learning python and git
You should review tags, signing and audits in the basic GIT lessons. It's REALLY important for developers to understand why they need to sign their code and sign their commits, not to mention carrying a proper audit across the GIT tree. Otherwise awesome GIT lecture.
TL;DW: git status TL;DW: You are in a maze of twisty little passages, all alike.
My sincere thank you for the lectures, this is so far the best material on git.
Very good lecture, thanks a lot.
This is gold. Learned a lot.
3:48 Git Bisect has saved me tons of time.
keep up the good work, really good content
I wish I had watched this before. Thank you!
This lecture is a masterpiece.
best intro to git ever, love that guy c:
It's amazing, thank you for the upload
Excellent Lecture
Thanks a lot for this rich lecture ❤
Great video thanks for sharing it with us.
Thank you! Really good tutorial
Thanks for lecture for beginners it was really helpful
@user-ff9oq6jg9c
2 жыл бұрын
why don't we have to write 'git commit' after 'git add animal.py' when merging dog with master? 1:00:45
I need to show my dev team this. Lordy, they need it.
best git tutorial ever!!
I thought that Subversion for example was all about the snapshots which is why it didn't record as much information for solving merge conflicts while Mercurial and Git don't think in terms of snapshots but changesets which works better with merging.
Great lecture, thanks
Thanks for the lecture.
This should be the 1st course for every group coding assignment. In a team without version control is basically a hot mess.
Thank you anish!!!
This is so good!