Git & GitHub Crash Course | Kalob Taulien | Skillshare
Play Speed
  • 0.5x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 2x
7 Lessons (36m)
    • 1. Introduction

      1:45
    • 2. Getting started with Git and GitHub

      9:53
    • 3. Adding files and staging them

      10:05
    • 4. Committing files and viewing differences

      7:17
    • 5. Your task

      0:59
    • 6. Where to go next

      3:07
    • 7. Bonus Lesson

      2:48

About This Class

Employers and developers everywhere are using Git. This is why you should learn it (and also because it's powerful and a really cool tool!)

Git is a powerful (and VERY popular) versioning tool for web developers. But it's hard to get started because there's a lot to know and everyone assumes you already know the basics.

This course is perfect for a web developers who's next step is to learn Git and GitHub. 

The core of this course is less than 30 minutes, and you'll learn:

  1. How to create a repository 
  2. How to copy it to your computer
  3. How to add files to your repository
  4. How to send the changes to GitHub

You'll also learn the terminology that developers use, like: cloning, staging, committing, pushing and diff. And you'll learn WHY Git is so popular and HOW it's powerful.

Not sure if you should pay for an 8 hour course on Git? Take this course first to get your feet wet.

P.S. You'll learn how to do all this through your command line... because one day you'll be deploying code on a server and you'll need to use the command line, it's the only way! This course will set you up for success! ;) 

eed1fe90

Transcripts

1. Introduction: welcome to this crash course on. Get in this course, you will be learning how to create a repository with get, you're gonna learn how to get started with get and I'll be walking you through this entire process from start to finish on how to create and contribute to a repository. You will learn what a repository is. You will learn how to make changes to files, add new files and how to see the differences between files. And then I'm gonna teach you how to take all of your work and how to send it to get Hub. You will also learn a bunch of terminology like cloning, staging, committing repositories and pushing whatever these words mean. You'll know by the end of this course. And lastly, we're going to learn how to do all of this through the command line because one day you will be on a server deploying your code, whether that's front end codes and CSS and JavaScript or back end code, whether that's PHP or python, and you're going to need to know how to use get on the command line because when you're on a server, there is no graphic user interface it is all command line now. Why should you learn? Get Why is right now the best time for you to learn get well right? Now is the best time for you to learn. Get because every employer and every developer that you'll be working with is currently using get. It is an extremely valuable skill toe have. And while we will be using get Hub as the demonstration in this course that doesn't limit you, you can use bit bucket, get lab or several other get services. They all work the exact same way. The commands you'll be learning are all the exact same. I'm Caleb Holley. I'll be your instructor throughout this course, and when you are ready, step inside and we will learn. Get together. 2. Getting started with Git and GitHub: how low. I guess we're gonna learn about some get hub stuff today. So in this video, I guess we're gonna learn about some get hub terminology. We're gonna learn how to create a repository. Ah, we're going toe learn how to, um called cloning. So we're gonna learn how to copy that repository down onto our computer, make some changes and push it back up to get up, and we're gonna learn what get actually is all about s This is ah, video that cram packed full of value. It's it's super useful and get hub and get in general are two tools that I use every single day as a developer and that most developers will end up using every single day. So without further ado, let's go ahead and get started. So the first thing you need is a get hub account. It is completely free. Um, click on, sign up, or you can use a little sign up form that was their eyes completely free. Don't worry about paying for anything. They're not gonna nag you for it. So if you don't have an account already create an account, I'm just gonna sign into my account and there we are. So once you have an account and you're signed in ah, you're gonna see this little green button says new repository, get hub changes that lay out every couple of years. So if you're watching this and this green button is at the top, right or somewhere else, um, just look for the big green button usually sticks out. This green button hasn't changed and always has new repository. So click that and we're gonna want to create a new repo. So what a repo is and I'll actually gonna make his little bigger So you can see this. A repo is re posit Torrey, which basically means a place to store your code or a place to store your stuff. That's all it is. It's like a storage unit for your code. So let's go ahead and create a repository, and I'm gonna call this one. I'm not example Name. I'm gonna call this example Repo and a sample description in here, and I'll show you where this shows up in a little bit. Now you have two options. Ah, you can either select public or private private is where they make you pay and This is where get home makes their money. We're not going to worry about private. If you really want a private repo, I would suggest using a service called Get Lab, which, um, is basically ah, the exact same thing as get hub. But your repose are all free gift Get hub is Ah, it's more or less the brand name. So when employers looking at your ah, your profile, they're going to say, Oh, what is your get, huh? Blink or what is your get hub? You are all. So let's create a public one. I Let's not worry about initializing a read meal. Talk about what that is. I get ignore. Don't worry about licensing. So let's go create that repository now and we see a bunch of stuff on here. So if you're looking at this and you're like, Oh, my God, Caleb, I I don't know what to do with this point. None of this stuff makes sense. Well, guess what? I'm here to help. So the first thing we can dio is we can either copy all of this stuff and just sort of hope that it works. Or we can sort of take the you longer route, which I'm going to take so that you get ah better in depth understanding of how get actually works. Okay, so the first thing we're looking at here is your get ur al. So if we copy this just in a copy this entire year l and open it up in incognito so that I'm not logged in to get and I just get rid of that dot Get at the end. This is my repository. You are l This is where all my code is going to live. And as you can see, there's nothing there. Your read me file is whenever you go to reopen this whenever you go to this page, there's usually a section at the bottom here, and it says all its your description. It's your set up guide. It's, uh, contributing people. It's whatever you want to put in there. It's that front page that first filed that everybody reads that's called to read me. We'll talk more about that in just a moment now, before we get started. What you need is you need tohave get installed on your computer. Now there are, I guess, two ways. Three ways to install get on your computer depending on which operating system you're using . So if you're using windows, I would suggest using get for windows. I use that when I was using windows as, Ah, Windows Dev and it worked beautifully for me. You could also just use ah bash for Windu's bash for Windows for you bunch or bash for even two for Windows. I can't remember the name of that one, but basically, it's your bash command line and you can also install Get through there. Um, in this video, we are going to be using the command line, and the reason we're doing that is because one day you're going to be on a server, and once you get on to that server, there is no gooey. There is no graphical user interface. You can't click a menu option and say, OK, commit and make all this, get stuff, work on a server. It doesn't work like that is all command line. And so we're going to learn the command line way. So what I'm gonna do is I'm gonna open up terminal. If your own windows you can open up, um Bashary bun two for windows. Believe is what it's called and you're gonna want to make sure that you have get installed . So if you do get Dash V, I hope that's around. Get dash dash version. This tells me what version of get I'm using. If you see something along these lines great you're using get If not, you're gonna have to go quickly. Go on. Google How to install? Get if you're on Lennox and you want to install git app get install, get something along those lines. Um, if you're on Mac, I don't actually member because I insult us a while ago, but probably something along the lines of brew install, get, um, And if you're on windows, you just go and download the dot txt file, and then you have your own little command line terminal a lot like this. Now, this point, if you're worried about using ah command line over the terminal or anything of that, don't. I'm going to explain everything we're doing. Ah, and you're gonna learn a lot. So the first thing we need to do is we need to be able to clone this repository. Now, What this means is basically we're going to take this set up that get hub is made for us and we're going to put it onto our computers so we can start adding files to it. So I'm gonna copy this u R l the https URL not the ssh one. The ssh one allows us to do all this stuff without without having to log in. We'll tackle this in just a little bit, so I'm gonna grab this https u r l Copy that. And in my terminal, I am going to go and create a new directory so you can already see that I am in my user account. And if I type PWD on a UNIX based system, it'll tell me exactly where I am. So if I create a new directory and K dire, which stands for make directory, I can make a directory called Websites. And then I can CD into that that directory and this stands for change directory. So if I type cd w E b, I hit tab for auto complete, and I'm now in a folder. Now, if this doesn't make sense to you can also do this the visual way and you can go into here and what I'm gonna do is I'm just tobacco here, and I'm gonna delete this folder entirely. So the Web Sites folder is now gone. And what I can do instead is I can right click, say, new folder type in Web sites. And I could go into here and I have a new folder on dykan Do this, Aziz. Well, um, where it says m k websites. We actually deleted that that directory, and now we're going to go back into it because we made it through the visual way. The graphic user interface. Cool. So now if I type ls Dash L. A. You can see there's absolutely nothing in there. And when I come into my folder, you can see again There's nothing in there. Now we need to clone this repository. And again, what cloning means is basically, cloning is copying. It's just a fancy developer term for saying, Guess what? We're gonna copy this from get hub to our computer. That's it. So we type get clone. This first command means executed. Get command. This means the command that we're going to be executing in this case, it's clone pace that you are l in there and it takes an optional argument after this, that would be the directory name. And we're going to call this one example Repo Ah, with an underscore instead of a dash, because I would prefer to have all my directories having underscore instead of a dash in case there's any sort of naming problems or passing problems with certain programs. If you're using like Python, um, or anything like that, sometimes dashes can be a little bit of a problem. So I stick with underscores I hit, enter and it says cloning into example Repo warning. You appear to have cloned an empty repository. Well, that's because remember when we run get hoping we looked at that you, Earl and it said you don't have anything in their Well, guess what? We don't have anything in there. So let's go back here. And you. We can actually see that example. Repo now exists. This is a folder in here. We can actually see this in here by typing ls Dash L. A. Boom. There we go. We've got example Rebo as a directory. Okay, so I'm gonna clear this with control. L and I'm going to CD into this directory as well, and if I type Alice Dash L A. And here we can see that we've got a dot get folder the visual representation of this We don't see anything, because by default, a lot of operating systems will hide anything that starts with a dot. So if it's like dot HD access dot to do dot Ah, get like the folder that we see in here. It's not gonna show it for us, but our command line can see it perfectly fine. So cool. We have our get repository on your we have successfully cloned it, but there's no files in there, so we don't actually see anything. So let's go ahead and create a file. I'm gonna open up sublime, and I'm going to just open up this do to do to do websites. And I'm gonna open up this entire project in here, and you can see there are no there's nothing in here 3. Adding files and staging them: And so what I'm gonna do is I'm gonna create a new file in here. I'm gonna call this just an example. Repository and ah, in here. This is a sample repo Hello world. Which is sort of the fact a way of saying hello. We've we've successfully tried something and I'm gonna save this file and I'm gonna save this as read me dot MD Read me is the It's all capitals and m d stands for marked down And I'm gonna take that out so that you can see it so dot MD equals markdown file And what this is This is basically saying using h one header make big tax on our read me. So I'm gonna save that Close it. I just sometimes like to do that, so that ah, sublime consort of refresh and sometimes syntax takes a little bit to kick in. So there we go. We've got to read me file. And if I go back into here, look at that. We've got to read me dot MD file, and I'm gonna show you that if I open this up again in a new tab, there's still nothing there. So get does not work in the sense that we clone this repo in any files that we make automatically go up to the cloud and get Hub says Okay, I understand that these are changes that I want to make. What it's saying is, Okay, I'm waiting for you. I'm waiting for you to make these changes and send them to me, and then we'll talk about maybe looking at putting some of the code up on get hub. So now what we have to dio is if we go down back into our terminal and type a last dash L a we can see that there is a new read me file, but I'm going to clear that with control l. And if I go in here and type get status, it gives us a bunch of stuff. But anything in red that we see is an untracked file or an untracked change. What this means is, now that we have get running in this repository, basically get is going to keep track of all of your changes of all of your files of anything that you ever changing here. Whether you delete, create a new file or you just change a file get will know what's up, and it will tell you that. Oh, you've got some. You got some changes in here? Ah, that is not committed yet. We'll talk about committing and staging and all the stuff in just a moment. So the first thing we have to do is we have to stage this this file. What staging means is basically we're preparing it. We're putting it in a box. Were where about to, uh, put a nice bow tie on it. We're gonna put some Christmas wrapping on it. Um, and then we're going to ship it off to get up, which is called committing. So the first step is adding this file to our staging. So we type and get ad, and if we just type the file read me dot MD Looks like nothing happened. But if we tied, get status once more. Oh, hello. There it is. Now it's in green. It says new file. It also does not say untracked files anymore. This one says changes to be committed. So this is now staged. That means this file is inside of our box that we're about to ship over to get hub now. In order to ship this, we need to tell it where to go. We need to tell it a little message like we're writing someone a letter saying, Hey, this is what is inside the contents of this box. And so we do this by committing So we do get commit Dash M, which stands for message, and we use quotations because it's a string. So if you're familiar with any sort of programming, we always put quotations around sentences and we're just going to say initial, commit, hit, Enter. And it tells us that in the initial commit was made, there was one file change, three insertions, and it created a new file called Rimi dot MD. Now, if we type get status again, there's nothing there. Now let's go back to get hub and I'm isn't a refresh this and you're going to see that absolutely nothing has changed. And that's because right now all we did was we. We created a new file and we put it in a nice box with a nice bow. But it's still sitting in our house. We haven't shipped it. We haven't sent it to UPS or to Canada post or whoever needs to ship it. They don't know about this this package yet. So what we need to do is we need to send us and we do have very, very easily. We do get pushed. Origin master. Know what this means is get that means executed Get command. Push means we're going to literally push this code to some other place. The origin is which branch which we're not going to cover in this video, because I gets a little too complicated for right now. Um and then Master is if we look here the code that you always see on the front page of a repo, the default code is always in a branch called Master. And when it's in master, it's like index dot html. It's the default one or index dot PHP is your default file is your default Rebo? This one is just called Master. So we're going to send this to get hub and there we go. We sent it to get up. Now there's one thing that get hub is most likely going to ask you for Get hub is going to ask you to lock in. It's gonna ask you for your user name and is going to ask you for your password. Just like you're signing into the website. That is completely safe. Generally, I would say Be weary about things like this, but get is a very well trusted service. So it's gonna ask you for your user name, in which case mine was Caleb telling and it's gonna ask you for your password. And it's gonna say it's gonna look something along these lines. Password. And then as soon as you start typing, nothing is going to show up because it's masking your password to make sure that no one can see it. But whatever you typing there is going to go through. So, ah, if it asks you for your password, which it should just know that it's okay to trust. Get up. Now, if I take get status again, we're going to see that absolutely nothing has happened. Your branch whips your branches up to date with the origin Master. Now, if we go back to get hub Tuh, tuh, we got some file in here. We've got an example Repository, This is a sample repost as how low world. We know that this is the read me because if we come back into here example Repository. This is a sample, Rebo says. Hello, world. And here's our message. It says Initial commit, and that was committed three minutes ago. That means it was committed on my computer. Three minutes go. That's not the time that it was sent to get hub. Now what we're talking about here is, um, it's called local work. So whenever you're working on your computer and get Hub does not know about this stuff yet , it's it's considered local, local is your computer, and you're going to hear this word all the time. Local local locals on my local machine it's on. The local server is a local host. What local means is it's just on your computer. It's a fancy word of saying, uh, it's a fancy definition of saying it's on your computer. That's it. Cool. Okay, so now we have made ah, repository from scratch. We've made a change. Actually, we've added a file and we've pushed it up to get hub. Now let's go ahead and make a change to this file. Example. Repository. This is a second change, and I'm going to create one more file in here new file index dot html and hello World, And this is just a very basic HTML file. That's it. So let's go back into my terminal and I'm gonna type, get status to see what files have changed, if any. And now we have two different sections, and this one we've got modified. It means I read me dot MD already exists, but something has changed. And in here we have index dot html is an untracked file. It means it's a brand new file. And essentially, what that is saying is in here. What we see on this page index dot html does not exist yet. So what we need to do is we need to add these files. So let's add our new index dot html file. What we do get space, add Add is just adding that file to the staging. And now if we type get stats again, we see changes to be committed. New file. But we're not going to push this one up yet. We haven't staged the read me changes, and if we wanted to add that, we could also type get ad, read me dot MD bite before we do that and I'm gonna get rid of this stuff so you can see a little better. So it's not the bottom of my screen. Uh, get status If I type get def read me and I just typed r e a and the hit tab and it didn't auto complete for me. This will tell me Oh, I've added a new line and nothing else has changed. If we wanted to actually change this as well, we could say hello. Hello, coders and this type. Get def again and we can see that this line has actually changed. Oops. This line has changed minus in red. So it's as minus at the left. Here. It's probably hard for you to see. I apologize for that. See if I move this over the minus and in red means OK at that part is gone. The plus and agreements. This part has been added and we can see that this file has actually been changed. So if we could get satis again, we can see our staged in green. We can see that we've got a modified and red get add. Read me. Get groups not bit status. Get status. And now both of our files are ready to be staged. We can see that word here staged 4. Committing files and viewing differences: and I'm just gonna move this up So we have some sort of history get, and then we want to commit this. Right? So this is already staged. This is not ready to be packaged up and sent to whoever we're sending it to. In this case, it's get hub. We need to commit this again. It's the exact same process. And this gets faster and faster every time you do it. So get commit, Dash M m for message. Second, commit as now I'm gonna show you one more thing. If we could get log, we have our initial commit. We've gotta commit I d in here. We've got a second commit. We've gotta commit idea in here. We've got our time stamps. We've got ah, an email address in there, which I apologize, but I'm gonna have to blur that out because I get a lot of emails. Um and then we also see over here Origin Master. Ah, which is what? Get hub is currently at and head is pointing to master. That's where we currently are. No, we're not going to get into head on branches and an origin master and all that stuff This is just telling us that there are some changes in here. So if we go ahead and type, get status once more, we'll see nothing. Get push origin, master. And again, at this point, it should be asking you for your user name and password. It doesn't ask me that because I have what's called Ah, an ssh key. Basically, I've got a public he on my computer. So get have always knows that I am accessing. Get up from my computer, this personal laptop of mine. Uh, that is something entirely different. But if you wanted to sort of extend your knowledge or just sick and tired of typing in your user name and password, you can do that. It's called an S S H key. And it's in your get hub settings. So now that's pushed up to get hub. I'm gonna go over here, refresh my page and oh, hello. Second, commit second commit. I've got read me dot m d. This has changed. This has changed. Ah, And now we've also got index dot html file and if I click into that file, we can actually see my code. We can see all of it. So just one warning. Just be very, very clear. Where am I going here? Never, ever, ever, ever never hold on to make this anymore. Never, ever, ever, ever, ever never store passwords. Never, ever store passwords in your get hub repose because it's all public. People can see them, never store AP I credentials never store any sort of sensitive information. So never store credit cards never find a different way because all this stuff is public. If you put your credit card number in here, guess what the entire world is going to have it. So the power behind get is that there is a get history. So this says, Second commit. But if I wanted to, I could go and dig around the first commit I could go and see all these other commits. Everything that I push up to get up has its own layer so I can see that first layer in that second later in the third layer and we can see all the changes throughout its history. It creates a nice code history, so that's the power behind get. Not only is a great version ing, it's decentralized code so that if your computer was to ever crash. Hopefully a dozen. But if it was Guess what? You're not going to lose your code because it's already on Get hub or get lab orbit bucket or something like that. Um, other people can work with your code, so I'm currently incognito. I can see this code. You can see that I'm not signed in. It's asking you to sign in or sign up. I can go and check out this code any time I want. I could even clone this down if I was an anonymous user. Or if you want to, you can go in here, uh, clicking here. Get that, https. Get hub dot com kill italian slash Example repot dot gets basically just gonna copy this u r l And you could clone this entire code source down onto your computer. And you will also have the entire history of all of this code so you can go around and you can find any mistakes or typos that I made. And you can change those on your own repository. So there we go. That is get in this video. You have learned due to do it. Scared of that stuff. What you learned what you learned in this video is you learn some terminology. So you've learned what cloning was. You've learned that Repo is short for repository. Ah, you've learned what it yet push was. You've learned what? Staging and committing our You've learned all of this stuff and now all you have to do is get some more hands on practice. So if you would like to get more practice with get what I would suggest you do is either follow the steps that I took in this video. Or if you want to push your boundaries just a little bit, you can Ah, you can clone this report or you can start your own repo. Um, but you can clone this repo and you can try to make some changes here or if you want to, you can fork this repo, which means once you're signed in to get hub ah, you can basically copy this repository into your own account. You can fork it and then you can clone it into your own computer. So onto your local host of your local machine, you can make changes and then you can push those changes up to your own repository. Um, but by all means, go ahead and experiment with. Okay, So I'm gonna do one more thing. You're just assure you the real power behind. Get here. Case. I'm gonna save this. Get status. I've got some change in my read. Me get def. Read me. I got rid of this. A second change. Um, in fact, I'm actually going to undo that by doing get check out. Read me something to check out the ah, the UN's changed file. And you see that? Hello? My code has come back. And now let's take a look at get log. So I made an initial commit. I made a second commit. Let's say I messed up really, really bad on that. Second commit and something Something just broke my website. Well, guess what. Get Because it's a version ing tool allows us to go back. So what? We can dio weaken, get check out. And I was in a copy and pace most of this hash. It says head is now at BDC 1942 initial commit. And if I go back to my code, my code has changed. And if I go get check out Master my code has changed again. So it's it's keeping different versions at different stages so that in my second commit, if anything was to ever go wrong, I can always undo that. And not only that, but other developers can work with me as well, and I can work with them using Get so There you go. That is an introductory. And to get ah, you've learned all about get you should be familiar enough with some of the terminology, and you should be able to create your own get hub repository, clone it down to your computer at a file, or make some changes to an existing file, and then you can push it up to get hub, and you can actually see your changes and share your work with the rest of the world. 5. Your task: All right. Welcome, Teoh. One of the last videos in this lesson, I guess in this course, I should say it's your task. So if you haven't been following along so far, what I would like you to dio, as I would like you to create a get home account. If you don't already have one, I'd like you to create a new repo or a repository. Clone it down to your computer. And then I want you to create a custom. Read me dot MD file and then push those changes to your get hub Rebo. And then lastly, I want you to go to get hub dot com slash your user name slash whatever your repo was called. And I want you to see if the changes have actually taken effect. If they have taken effect, you should see what is Whatever is inside of you. Read me dot m d file And assuming that all of that is ah, good to go. Very straightforward. Um, then head on over to this next lesson about where to go next 6. Where to go next: already. You have finished this course. So where do you go next? What do you learn next? You keep learning, get dealer and PHP do you learn JavaScript? The world of web development is huge and there's no telling what you should or shouldn't possibly dio. But I'm gonna give you a few suggestions. Eso I would say apply. Get to all of your projects Right now It will not only give you hands on experience applying get to your projects But you also learn, Ah, how get commits work a little better how the history works. You learn more about the benefits of using get, especially if something goes really, really wrong or poorly. You can always undo that. Commit or you could go back. A couple commits and see the code that still works. It's a fantastic service and again it's, ah, very valuable skill that I think every developer should have. Now, if you need private repositories, get hub is not the place for you. If you're working on something top secret or if you're working on a project for a company, do not use get hub. I would highly suggest using git lab dot com You get all your repository is absolutely free . Get hub charges. I think it's $7 per repo. Where get lab. They charge $0. It's completely free. They don't ask for a credit card or anything is pretty fantastic. You get all the same features, all the all the same stuff. It's just get Lab is a newer company. Um, and get get hub. Rather has been around for a long, long time. So it's just the new guy versus the old guy. Eso If you need a private repository, check out, get lab dot com. Another thing that you can check out is something that I mentioned earlier in this course. Ah, was ssh keys. You can look into adding or possibly creating a new one for your computer and then adding your ssh t s S H key to either get hub or get lab. And then once that's added, Ah, whenever you do a, um I get push origin master, like what we saw a few times in this course, it's not gonna ask you for your user name and password. It's already going to know who you are and what you do, and that your computer is completely allowed to make these these moves on your repo. It's a security thing, but it's also a really cool feature. Now, if you've decided that get really isn't for you at this point, while I would say Just hang in there, struggle with it a little bit because it's still a very, very valuable skill. But if you if you really just absolutely hate this, this isn't for you, I would say, Ah, one of two things. Ah, the 1st 1 is there are plug ins for sublime and Adam and V s code that do all of this get stuff for you. Ah, and it's just point and click. It's a few menu options and boom, you're done. So no more command line. Ah, the second option is if this really isn't for you, I would suggest going to learn javascript or python or PHP or just keep working on your programming. Just keep making it better and better and better. Every day that you practice, you're going to get significantly better. All right, so that's it for this course. Thank you for joining me. It's been roughly 30 minutes. I hope you've learned a lot. And wherever you go from here, I wish you the best of luck. 7. Bonus Lesson: Hey there. This is just Ah, little bonus lecture. You're not actually going to learn anything educational in this one, but you might find some pretty cool resources. Ah, The first thing I would like to let you know is that I write block posts every week, sometimes two a week, sometimes one every 10 ish days. Ah, boat coding and technology. And you can find it all at Caleb dot io slash blawg. I also have all of my courses available on Caleb died I o for a small monthly subscription . If you're interested in getting all of my other courses, you can find them on their or if you're a big, loyal fan of view to me or skill share. I have courses on both of those platforms as well. Feel free to check them out at any point in time. Feel free to message me to. If if you've got questions about, of course you're not quite sure if it's for you. Send me a message. Um, and also I would like to quickly mention that I have this group on Facebook. It's an amazing group. It's called Learning to Code. We've got tens of thousands of members in there. And the reason that I say it's amazing is not because I made the group or anything of that . Honestly, the members make it amazing. They're so much support in there. There's so many people asking valuable questions all the time that either Ah, thousands of other developers can answer or 1000 of thousands of other developers can't answer. Um, and I'd be happy to answer those questions as well and sort of fill it, fill in the blanks for everybody s. So there's there's that option again, it's called Learning to Code. It's on Facebook. Um, if you want to follow me, you can follow me at Caleb Tall, lean on Twitter or or on Facebook, the pages Caleb dot io so facebook dot com slash Caleb dot io Ah, and lastly, I would really, actually really, really appreciate it. If you could just leave a review. It helps other people figure out if this courses for them. Maybe it's not for them. Maybe a different course is better for them. I'm always most interested in in serving content in creating courses that is most helpful to people. And if this course is not helpful to you know, four out of 10 other people your review can help that. Or if this course was absolutely fantastic and you loved and you think that every other developers should be taking this course, they should know that as well. So please leave a review. I really, really appreciate you being able to leave a review for me. And it's sort of how I get the word out about these courses. Um, so with all of that said, I got nothing else to promote. I just wanted to say thank you for taking this course. It's been roughly 30 40 ish minutes. Um, and I hope you've learned a lot in this course and that you can apply everything in this course to your day to day life. Just coding projects, coding websites, coding software. All right, that's it for me. Happy coding.