1 00:00:00,180 --> 00:00:00,660 All right. 2 00:00:00,660 --> 00:00:02,730 So let's start with the obvious question. 3 00:00:02,730 --> 00:00:05,910 What exactly is GitHub or what does it do? 4 00:00:06,840 --> 00:00:11,610 There's many answers to that question because GitHub over the years has really evolved and added on 5 00:00:11,610 --> 00:00:12,660 a bunch of features. 6 00:00:12,660 --> 00:00:18,810 But the core mechanic, the single thing that GitHub is known for, is that it's a hosting platform 7 00:00:18,810 --> 00:00:20,550 for Git repositories. 8 00:00:20,790 --> 00:00:24,120 GitHub allows us to put our Git Repos in the cloud. 9 00:00:24,360 --> 00:00:29,670 We can access them from anywhere, we can share them with people and we can collaborate with people 10 00:00:29,670 --> 00:00:30,810 on Git Repos. 11 00:00:30,840 --> 00:00:36,630 So GitHub has a bunch of features built that have to do with collaboration and discussion about Git 12 00:00:36,630 --> 00:00:37,190 Repos. 13 00:00:37,200 --> 00:00:40,860 So I showed this slide very early on, but I just want to return to it. 14 00:00:41,250 --> 00:00:44,670 There is an important huge difference between git and GitHub. 15 00:00:44,760 --> 00:00:51,270 Git, hopefully you're familiar with by now is a version control system that we run on our machines 16 00:00:51,270 --> 00:00:51,990 locally. 17 00:00:51,990 --> 00:00:54,060 We don't need the Internet, we don't need an account. 18 00:00:54,060 --> 00:00:57,600 You could go your entire life working with Git and never using GitHub. 19 00:00:57,960 --> 00:01:00,450 GitHub, on the other hand, is a website. 20 00:01:00,450 --> 00:01:03,120 It's a hosting platform for Git repositories. 21 00:01:03,120 --> 00:01:04,860 You need the Internet to access it. 22 00:01:04,860 --> 00:01:06,270 You need an account. 23 00:01:06,780 --> 00:01:13,110 It is completely I don't want to say completely separate from Git because it is a hosting service for 24 00:01:13,110 --> 00:01:17,220 git repos, but git itself is completely independent. 25 00:01:17,220 --> 00:01:24,450 So imagine I'm working on a video game, a mobile game that I'm developing on my machine and I'm using 26 00:01:24,450 --> 00:01:25,020 it to track it. 27 00:01:25,020 --> 00:01:27,570 I have a couple of commits, let's say there's a couple of hundred. 28 00:01:27,750 --> 00:01:33,930 Those three you're seeing on my machine are just to fit in the diagram and I can make a GitHub account, 29 00:01:33,930 --> 00:01:40,710 make a GitHub repository and push my local code that repo from my machine up to GitHub. 30 00:01:40,920 --> 00:01:43,290 And I could do this for a couple of reasons. 31 00:01:43,470 --> 00:01:45,930 One, I just want to back things up. 32 00:01:45,930 --> 00:01:50,070 So I keep doing my work and I can push those changes up to GitHub. 33 00:01:50,070 --> 00:01:57,180 So now GitHub has a record of my repository, so maybe there's a house fire, a horrible tragedy. 34 00:01:57,180 --> 00:02:00,990 I get a new laptop, I lost my old laptop with the repo on it. 35 00:02:00,990 --> 00:02:07,410 Well, fortunately for me, assuming I kept my GitHub up to date, I can go to GitHub and get that code 36 00:02:07,410 --> 00:02:09,780 and pull it down to my machine. 37 00:02:10,229 --> 00:02:14,340 So that's kind of a I won't say rare, but not as common scenario. 38 00:02:14,370 --> 00:02:20,970 What really is great about pushing my code up to GitHub is that I can collaborate, so maybe I decide 39 00:02:20,970 --> 00:02:27,390 I need to bring in, I don't know, another engineer over here on the left and I don't know what her 40 00:02:27,390 --> 00:02:29,130 name is, let's say Zelda. 41 00:02:29,130 --> 00:02:33,870 And then I bring in a graphics artist, pixel artist over here on the right. 42 00:02:33,900 --> 00:02:36,720 His name is Link, so I need their help. 43 00:02:37,200 --> 00:02:43,080 So using GitHub, they can all clone or they can all get access to this repository on their machine, 44 00:02:43,350 --> 00:02:48,420 and then they can make contributions, put them up on GitHub, and then we can pull them down and get 45 00:02:48,420 --> 00:02:50,700 those latest contributions, those new commits. 46 00:02:50,700 --> 00:02:52,530 And this allows us to collaborate. 47 00:02:52,530 --> 00:02:57,780 And maybe eventually if my game's a hit, we're talking about dozens or hundreds of collaborators. 48 00:02:57,780 --> 00:03:00,030 So this is really where GitHub shines. 49 00:03:00,300 --> 00:03:05,970 It's important to know that GitHub is not the only option for some of these features, specifically 50 00:03:05,970 --> 00:03:07,740 for hosting repositories. 51 00:03:07,740 --> 00:03:14,010 There are other options like GitLab, Bitbucket, but the truth is that in recent years, GitHub is 52 00:03:14,010 --> 00:03:15,660 just completely obliterated. 53 00:03:15,660 --> 00:03:16,710 The competition. 54 00:03:16,710 --> 00:03:20,100 It's now become the world's largest host of source code. 55 00:03:20,670 --> 00:03:25,350 In early 2020, they reported having having over 40 million users. 56 00:03:25,350 --> 00:03:33,180 These days it looks like over 56 million in 2021 just from their own marketing page, which we'll come 57 00:03:33,180 --> 00:03:33,690 back to. 58 00:03:33,700 --> 00:03:35,910 It's really a lovely marketing page. 59 00:03:35,910 --> 00:03:40,890 And the last slide here on GitHub that's very important is that it's free for our purposes. 60 00:03:40,890 --> 00:03:47,880 So unlike a lot of subscription platforms or websites where the free tier is just garbage or it's just 61 00:03:47,880 --> 00:03:51,120 supposed to like lure you into paying more, right? 62 00:03:51,120 --> 00:03:55,740 Where maybe you have a very limited set of features and if you pay ten bucks a month, then you can 63 00:03:55,740 --> 00:03:59,370 actually use this in a useful way that is not GitHub model. 64 00:03:59,400 --> 00:04:06,330 GitHub offers paid tiers, but they're largely oriented towards enterprise, towards companies, for 65 00:04:06,330 --> 00:04:11,700 individuals, for developers, the free tier gives you pretty much everything you would need unless 66 00:04:11,700 --> 00:04:17,430 you are creating some incredibly popular tool and open source project that's like used by millions of 67 00:04:17,430 --> 00:04:17,970 people. 68 00:04:17,970 --> 00:04:23,490 And all likelihood you'll never need to subscribe to GitHub so I can show you the different pricing 69 00:04:23,520 --> 00:04:24,390 tiers here. 70 00:04:24,390 --> 00:04:24,720 Right? 71 00:04:24,750 --> 00:04:25,680 Here's free. 72 00:04:25,680 --> 00:04:31,920 There is a team, there's enterprise level, but with this free level, we have unlimited public and 73 00:04:31,920 --> 00:04:35,370 private repositories, unlimited collaborators. 74 00:04:35,880 --> 00:04:38,340 There's these things called GitHub actions we'll talk more about. 75 00:04:38,340 --> 00:04:39,990 So there are some distinctions there. 76 00:04:39,990 --> 00:04:45,300 You pay for more actions or more minutes a month, and then there are some security features. 77 00:04:45,300 --> 00:04:50,580 Larger enterprise companies might want single sign on this advanced auditing, but we really don't need 78 00:04:50,580 --> 00:04:51,600 to worry about that. 79 00:04:51,600 --> 00:04:54,330 We're focused on just the core mechanics of GitHub. 80 00:04:54,330 --> 00:04:57,570 It's all here for us, which we are very, very thankful for. 81 00:04:57,600 --> 00:04:59,700 Somewhat rare in the world of subscription. 82 00:05:00,280 --> 00:05:04,720 So I'll end off by just scrolling through their beautiful marketing page. 83 00:05:04,750 --> 00:05:06,730 I really love the illustrations they have. 84 00:05:07,150 --> 00:05:10,770 You can see some stats about how many people are using it. 85 00:05:10,780 --> 00:05:11,740 72%. 86 00:05:11,740 --> 00:05:13,030 A Fortune 50 companies. 87 00:05:13,030 --> 00:05:18,820 It's really grown both in market share for just open source development and random developers like me, 88 00:05:18,820 --> 00:05:21,160 but also in large companies. 89 00:05:21,250 --> 00:05:23,290 So tons of big companies use it. 90 00:05:23,800 --> 00:05:27,940 I'd say it all boils down to this Give your code a home in the cloud. 91 00:05:27,940 --> 00:05:30,490 But there are many other features. 92 00:05:30,970 --> 00:05:38,290 It almost acts as a social network for git repos where you can chat, write comments, approve, disapprove, 93 00:05:38,290 --> 00:05:46,470 suggest changes to projects, merge code in reject code, call attention to certain lines of code. 94 00:05:46,480 --> 00:05:52,390 Then there are some other things that don't necessarily have to do with git repos but are kind of adjacent 95 00:05:52,390 --> 00:05:55,870 like these interactive developer environments I think what do they call it? 96 00:05:55,880 --> 00:05:56,710 Code spaces. 97 00:05:56,710 --> 00:05:57,610 That's new. 98 00:05:57,730 --> 00:06:00,680 GitHub actions will come back to later on. 99 00:06:00,700 --> 00:06:06,430 Additional features like automatically scanning your repositories and looking for common vulnerabilities 100 00:06:06,430 --> 00:06:10,750 and letting you know ahead of time and a whole bunch of other things. 101 00:06:10,750 --> 00:06:12,790 So let's end with that. 102 00:06:12,790 --> 00:06:14,230 What a beautiful illustration. 103 00:06:14,920 --> 00:06:16,180 So that's it. 104 00:06:16,270 --> 00:06:21,130 GitHub does a lot, but for us, what we care about is the fact that it will host our repositories and 105 00:06:21,130 --> 00:06:23,020 help facilitate collaboration.