Complete Git and Github Hands On Tutorial with Commands

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
learn it right now get something every developer devops Engineers or anyone working with code should know about chances are if you don't know Git You might not be hired because employers prefer people who have knowledge of git and know how to work with branches what is most request pull request and everything about it so in this video I'm going to explain you everything you need to know about get how to work with GitHub what are different git commands and also a Hands-On practice to help you understand git Concepts very clearly so watch this video till the end thank you hey everyone Welcome to Cloud Jam in this video we are going to learn about git which is very very very important in this video I'll be explaining you what is get how is it different from GitHub what are different git commands you need to know along with Hands-On practice to demonstrate how you will be using these commands in your job not only this at the end of the video I'll be sharing with you an excellent game to practice and master your git Concepts and by the end of the video you will have clear idea on how to push your code from your local machine to git repositories also how to clone your code from git repositories in your local machine what is branching what is merge request pull request and a lot more so watch this video till the end let's understand what is git and I'm going to explain you this in very simple terms rather than using complex words according to definition git is version control system used to keep track of changes made in your code but why is it actually called version control system because the main feature of git is to manage different version to help you understand this let's consider an example you want to create an application and for that application and you have to write the code so you wrote the code for your application which is the first version now you made some changes you have second version after you make changes there is third version git is used to manage all the different versions you have for your application not only this you can also revert back to any previous version if you have any issues with the current version so git helps you manage different versions also reward changes if there are any issues git also provides you with branching and merging system using branches you can work on new feature and Bug fixes independently without affecting the main code base that might be running on your application once you are done you can then merge that Branch into the main code base to make sure that your application is working properly with the new version of your code along with this git allows multiple developers to collaborate to a single code base which can help for more collaboration and teamwork using git we can try manage and collaborate on source code very effectively now let's look at history of git git was created in 2005 by Lena stovalls the same person who created Linux so in 2005 Lina store walls was working on Linux and he wanted to have a Version Control Systems to handle big Linux files that is when he started working on git after initial development Linus released get as open source it became famous and everyone started using and contributing to it since then every company uses git to manage their code base and that is why it is very important for you to understand and learn git to someone who is a devops engineer you will have to understand git because git is used in every devops task if you look at cicd git is the central component ncicd whenever the code is pushed only then the cicd pipeline will run also whenever you create terraform scripts or Jenkins pipeline or ansible playbooks you have to push them on git repository so you will need to have understanding of git if you're someone who wants to contribute to open source it is very crucial for you to understand Git You cannot do open source without learning it because contributors have to clone the projects and and then make the changes and submit the pull request so they will only be able to do that when they understand get there's a huge confusion among a lot of people between get and GitHub so some of them think that great and GitHub is one thing but that's not true let me help you understand the difference between git and GitHub so in simple terms git is this command line tool used for version control system that is in your computer but GitHub is a web-based platform that is used to host and collaborate on on gate repositories online so it's a web-based platform whereas git is a CLI tool so we use bid for Version Control and GitHub to host and collaborate on git repositories however you should know that there are different alternatives for GitHub such as gitlab or bed bucket or code command so if you understand GitHub you can also work with gitlab you can also work with bitbucket but all of them will have get as an underlying technology to work with so you need to understand get if you want to work with GitHub or gitlab or bitbucket or anything in the upcoming demo I'm going to show you how you can create git repositories on GitHub how you can push your code clone the code create branches and lot more so let's start with the Hands-On all right so I'm here on my computer screen now we are going to do Hands-On to understand all the different git commands and how they are used along with that I'm also going to share with you some notes to learn git and a game to practice and understand all the git Concepts in this Hands-On we are going to understand how how you can create get repositories on GitHub how to clone the code from GitHub repositories to local machine how to push your code what is branching how to create new Branch push your code on your particular Branch what is most requestful request and all of that so let's get started first thing to work with Git is to have git installed in your laptop so I'm using Ubuntu right now and let me show you if it is installed for me or not a terminal here this is my terminal and if I run get and it shows me all the different commands which means git is installed you can also run git dash dash version and if it is not installed for you you can install it from the official documentation so I can just do get downloads and this is the link from where you can download it if you're using Linux or Mac OS or windows so if you're not using Windows you can go to this website and download 64-bit or 32-bit according to your laptop but most likely nowadays every laptop comes with Git install in it if you're using Windows you can install something known as git bash or you can also use it in your vs code I'll be showing you all the things mostly in vs code and the terminal but you can also use and install git bash which is a tool for you to work with Git on windows so now let us confirm that I have I have get installed I can start with creating a repository and trying to write some code and push it on GitHub so to create repositories on GitHub you can use GitHub similar to GitHub Market lab and bitbucket so if I go to gitlab you have different UI but you can create repositories similar to what you can do on GitHub you can also use bitbucket bitbucket is another tool to get to use your git repositories along with this you also have code comment and lot of other tools for this plans on I'm going to use GitHub which is one of the most used platform so right now I'm going to click on new repositories here to create a new one let's name this repo as learning git so learning underscore git is what we can name so this is name is available which means we can use it let's give a description this is my repo to learn and practice get all right once you do this you have two options you can either create repository public or private if it is public anyone on the internet can get the code from it if it is private only you can Define who can access it maybe your own organization people can access it then you have an option to add a readme file readme is something which tells about what is this repository what is the project inside the suppository so so it's a good practice if I treat me but I'm not going to do that and if you see here there's something more named as docket ignore so when which whichever file you don't want the git to handle is what you will insert in dot get ignore sometimes there are files consisting your passwords or sometimes there are extra files or dependencies that you don't want to push on your repository or you don't want the git to handle then you can put them in dot getting your file so choose which files not to track from the list of templates you can learn more about it by clicking here and then going to documentation so you can say it says you can create a getting your file in your repository to tell which files and directories to ignore when you make a comment I'll be explaining you what is a comment what is a push what is pull everything in this Hands-On so no problem now that everything is ready let's click on create repository once this repository is created it will be completely empty so if you see this repository is completely empty no code at all and you have some instructions to start working on it so I'm going to use this instructions to set it up in my local machine and then we have some commands here let's understand that and try to use it so right now we have a new repository created so I'm going to use this commands so I'm going to go to my uh you can open a vs code if you have vs code if not you should install it or else I can run these commands in my terminal as well so I'm going to open my terminal here maximize it and then copy this this is creating a readme.md file in my local machine so I'm going to run this command which is going to create a readme.md to make things simple let me create a wrap up so I'm going to create a wrapper saying learn get all right let's go inside this repo and start to run the commands okay so I'm inside the learn git wrapper and I'm going to run this command which is going to insert which is going to create a readme.md right now if I show you there's no file created but after I run this command it will start creating a file so the file will be there which is not in my GitHub repository but this is my it's in my local machine so you can see there is a file named as readme.md let's open this in a vs code so I'm going to say code dot which will open this file in vs code all right now I can start managing my things so I have a file named as readme.md inside this directory after I run that I can run the next command which is to get in it this command is to initialize a gate repository for example if you see right now if I do LS La there are no files apart from readme.md but if you want to work with Git there has to be a folder named as dot git which has all the information to work so if I do anything here it will not work because git is not until initialized so I need to do git init once I do get in it it says initialize M take it repository in this part and if I do LS La now you will see there's a folder named this dot kit which is very important for you to have if you want to work and run the get commands so after I initialize it I'm going to say git add what is this command get added me right now this readme.md file is in my local machine but not in my uh not in my get repository so if I want to push this I need to First add it in staging area this might be confusing but if you watch this completely it you will have a good understanding of how to push your things so whenever you want to push your things you need to say git add first so right now I have only one Phi which is present in my local but not in my remote repository so I need to say get add and the name of the file which is readme.mdn so once I do this and I do get status I'll be able to see that there is one file which is ready to be committed but hasn't been committed so first you need to say get add and then get comment so get comment hyphen M to say what is this comment about and if you see here it says my first comment you can either say first commit or initial commit or anything so I'm going to say initial commit and then press enter now the commit has been made and it has after the community need to push it so get add get commit and get push is how you can push your code from your local machine to repository if I do get push now I need to say get push hyphen U origin and the name of the branch but what is the name of the branch so if you want to check which branch are you on you need to say get Branch once you do this it says you're on Master Branch so right now I want to push things on my master branches I can say git push hyphen U origin and then Master what is this origin and how the why why are we using it here to understand that let me show you what repository are we connected to right now so if I do get remote hyphen V this is the command to check which repository are you going to push or are you going to pull from so when I do get remote hyphen v i I see there is nothing here right which means I will not be able to push my terminal does not know which which repository to push on this is why you need to use this command get remote add origin and then the URL of this particular repository which is learning it so once I do this I'll set remote to to this repository which means I'm going to push and pull to that repository once I do remote you can see now I have an option here and this is this is the origin so to push things I'm going to say git push hyphen U origin and the name of the brand which is Master here after I play press enter it will start pushing and now if I refresh you should be able to see that a full file has been added which is an initial commit one minute ago right this is how you can push things let's try one more thing right now this is my first version of my application let's create another file make it app dot pi and let's say print this is my second version so using it you can you can manage different version of your application and if you think you can also come you can also revert your commit and go back to the previous version right now if you see there's a u here which means untracked file you get has interacted you have made a change you have modified something but there's no track of it so to to see now that we added a file this which is not there in our repository how do we push it so remember get add get commit get push these are three steps but now if I want to see what is the change made here I can then get status command this command will tell me this command is telling me that you're on main you're on the master branch and then you have a filing Creator which is after five which hasn't been tracked so to track it you need to run the command get add and the name of the file so I can say get add name of the file which is app.pi but I can also say git add dot which means track all the files present in this cartoon folder which hasn't been tracked yet so when I do get add dot it will put the app.pi in the staging area what do you mean by staging area let me help you understand that so if I show you the git workflow if you look at this diagram here uh this is our local machine this is a remote repository whenever I want to push some things from my local machine to repository I need to First say git add when I do get that it is going to be tracked and put in the staging area after it is in staging area I can do it comment to put it in local repo and then get pushed to put it in on GitHub repository this is what we are doing so get that get commit get push now we have this file created which is not in our room which is not in a GitHub repository so I can say git add Dot and now if I do get status you will see the change in the status now so once I took it status it says your branch is up to date and change is has been committed so you have the color has been changed from red to Green which means you have added the fire and staging area you can do git commit and hyphen M to say what you have made so I can see I added add app.py once I do this I can press enter which means I have created a comment let's try to push it so the push command is get push hyphen U origin and the name of the branches Master once I press enter this file app.pi so you can see the U has been gone which means it is tracked and it has been pushed I can confirm by going to my repository so right now it says readme.md only one file but if I refresh I should be able to see two files so this is a new file which has been added this is the commit message and you can see this is the commit number here and it has been pushed now there are two comments in total I can see all the different comments and what change has been made so if I show you here this says green in color which means this thing has been added if I try to edit something if I try to make it this is my third version and save this file now you can see this is uncommitted change or it has been modified m stands for modified right so now the thing has been modified if I want to push this modified change on on GitHub I can do the same thing git add dot then get commit hyphen M which is modified to file so modify app.py and then once I do this I'm going to say get push is Master once I run this it will show me a new comment so let's go back and refresh this page you will see a new comment appearing here which is modify update by so git is able to keep different versions and you can see the comment message here and you can see what change has been made so it changes earlier it was second now it is third version this is how you will be pushing and if I show you the different branches I have in my particular repo so right now I only have one branch and whenever you work in a company you should never ever push your things in a master Branch you should always create your own branch and push things on it because usually on the master Branch you have cicd enabled and if you make changes here it can be directly applied on your production which can break your production or bring it down so you should always create a new branch and then merge the changes if everything is okay let me show you how you will be doing that right if I show you if I don't get Branch command to check which branch am I on I can see there's a master Branch I'm working on so let's get a price for ourselves I'm going to create a new Branch you will be saying git branch and the name of the branch so let's say cloud chat once I do this it is going to create a branch but it has not changed it if I do get Branch it is still using the master punch if you want to switch a branch from one branch to another you need to use git checkout command so git check out Hi and then name of the branch which is cloud champ once I do this it has switched my Branch from Master to Cloud champ and you can confirm that by running git Branch once you create a branch it will not be shown on your GitHub unless you push your things there so let's try to make a change so let's say this is my fourth version in Cloud champ branch right now I want to get this thing to be pushed in my GitHub usually it is modified I want this to be pushed in my GitHub in my own Branch not in the master Branch so I'm going to say git add same as I did for master plan so guitar dot which means which will add this in the staging area so get status which says that this has modified and added in the stitching area which has to be committed so I'm going to say get comment hyphen M and put the message in double quotes so it can be anything any message let's say adding add app.pi in Cloud champ notch once I do this and press enter it will be committed let's push it so to push you need to run the same command but change the branch name so I earlier I was using get push hyphen U origin Master but now I'm going to say get push hyphen e origin Cloud champ to push that particular thing in a particular branch which is cloud Champion once I press enter you can see it starts pushing and then it has pushed it let's try to refresh and you can see this message appeared here it says Cloud champ has recent pushes less than a minute ago which means if I refresh the page I should see two branches rather than once so you can see it says two branches the first branch is Master second is cloud champ so in the in the master Branch there is nothing it's the same as it was earlier which is this is my third version but if I show you the same file in Cloud shap it will have a different version which means you can work on features and bugs on your different branches without affecting the without affecting uh the main branch or the master Branch so this is the change in the cloud champ you can see it says this is my fourth version Branch if I want these things to be replicated in the main branch or in the master Branch I need to merge it and how do you do that so the best proper way is to create a merge is to create a pull request so you see this build request option here you can click on compare and pull request let me give you a scenario let's say you are working as a devops engineer or a developer and someone who asked you to make a change in the repository and Pull and push it so you will create a branch same as we did here by running it Branch command uh get Branch name of the branch to create a new Branch then get check out to switch here to your branch make the change push it and then create a pull request like this so you can Define what you made so this is the change made for our fourth version please review and a merge so once you do this please review and merge once you do this you can click on create pull request and you can also see the things and the changes made so the change is this in the main other Master you have this but in outram you have this so you can compare and then after you give create the school request you can give this to anyone who can approve it so you could have to copy this link and share it to person who can review it so once everything is reviewed let's say your manager has reviewed and everything is okay you can then click on multiple request once I click on merge will request everything in the cloud sham Branch will be transferred to the main branch or it will be merged inside the main branch so I can either do this from here or I can run the command which is git merge let me show you that so if I show you this is the command which means join two or more development histories together you can do it through the UI which is more easy so once I click on merge pull request I can then click on confirm merge and now if you see merge has been done into the master from the cloud champ so let me show you the master Branch now inside Master Branch you can see the change has been shown and this is Master Branch this is how you will be creating pull request to make sure your changes are create are created and merged properly without affecting any Master Branch this is very very crucial so you need to understand how to create pull request and how to merge them properly you will not be merging them in your company maybe your senior managers or your senior devops Engineers will be doing it but this is a proper way of how you can create a change without affecting the main or the master branch and you need to understand this because this is very very important all right so now that we have more requests you can learn about you can learn more about full request here and the difference between pull request and merge request is nothing uh they both are the same thing just in GitHub if you create a pull request if you created the question is a full request if you use gitlab same thing is called as merge request in gitlab so both of the uh terms are different but actually do the same thing so whenever you want to merge your particular Branch into the main you can either create pull request in GitHub or you can create more as a question gitlab so they don't they both do the same thing but the names are different so pull request lets you tell lets you tell others about changes you have pushed to the branch in the repository so you can create it to just merge your Branch from your branch to the main branch this is what pull request actually is you have understood how to create a file and then get add get comment get pushed to have that file from your local machine into your remote repository let's try to get this code on some other machine so I'm going to go to my AWS dashboard to show you how you can get the code from your GitHub repository to your local machine so we have now understood how to push your code from your local machine to GitHub repositories but how can you clone your code in different machine let's say a developer has made some change and you as a devops engineer have to get the code in your server or on your local machine so to test that out I'm going to get the code from here into my ec2 instance this is my ec2 instance which is all fresh so I don't have any files inside it node folders let me see if it is installed or not so I'm going to maximize the screen and type get if I press get and get all these commands which means it is installed if it is not installed for you you can just do sudo apt install get hyphen y this is Ubuntu so I'm using apt if it was something else I would have used different but it says it is already newest version so I can start working with Git so for you to get the code from your repository to your local machine so the code is present here I want this code in my in myself Warrior so how can I do this to get the code to click on this option here and you can choose on clone so cloning the means getting the code to your server so there are three options for you I can you can either use https SSH or GitHub CLI https it requires you to have password and username if it is a private repository if it is a public one you don't require that SSH will use will require you to add the SSH key and then you have GitHub CLI which we are not going to use so let's use the https option and this is a public repository so I don't need to do anything to get the to get the code you need to run the command get close and paste what you copied which is the link so once I press enter it will start cloning and now if I do LS I should see a folder I should see a folder named as learning git which should have all the files so if I do LS you can see the photo name that's learning it let's see what is inside it if I do LS I can see the file which is readme.md and app.pi this is how you can get the code and let me show you some other example let's try to clone some other repository let's say kubernetes so I'm going to say kubernetes GitHub and if you were to work on open source project and you want to make some change let's say you want to contribute to kubernetes how can you do it you can get the code first in your local machine so you can see how this is how people are contributing to it people are going to so this is uh tytc the user he has made some change in the kubernetes code and then created a pull request so someone from the kubernetes team is going to either review it so you can see they have added a comment so if they make the change this can be approved and then merged in the main repository which means you can become a contributor doing that so how can I get this code same day I'm going to click on code option here so let's click on code option here copy the link which is https link so I'm going to copy this and I can either paste it here or in my local machine wherever I want to get the code so I'm going to say git clone and then copy this once I do this it will start cloning so you can see cloning into kubernetes and after some time so this is a huge code if that is why it's going to take some time so there are so many files here it's going to clone all of them and then you can start working and contributing to it and then create a pull request to let someone accept it and then you can become a kubernetes kubernetes contributor and this is how we do open source projects uh you cannot do open source projects without learning git without learning how to make changes and push to it always make sure when you push your changes you don't do it on Master you can create different branches as you can see here there are different branches for different releases and people also create and make changes on the on their own particular branches they don't do it on Master Branch so if you see here uh this guy has made some changes so if I click on this so he this guy has made some changes in this particular branch and he wants it to be merged in the master Branch once this is merged then he can become a contributor to kubernetes so always make your changes on your own branch and then if someone approves they will merge it in the master bench so now this is still cloning you can see it's still cloning here once it is cloned I will get all the data in my local machine and then I can push it to uh GitHub create full request all that stuff I hope now you have understood how to push your code from your local Machine by running get ad uh get commit and get push so this is the workflow whenever you want to push to GitHub repositories you do get ad get comment get push and it is there if you want to get something from your code you can do just get pull and then it will be updated let's say someone developer has made some change and then uh you you also made some change so if you want if you want to get your changes you can just do get pull and we'll get all the operated changes so now kubernetes repository has been cloned properly if I do LS here you should see there's another folder named as kubernetes and if I go inside this folder you can see all the different files that are present which are same as what you have on the repository on the GitHub so all these files in the master Branch are present in here let's try to make some changes and push it from our from our server to GitHub so I'm going to go inside my particular directory which is here right now I am on Master Branch I can get checkout to use the cloud Channel Branch get check out the command to switch your branches second to check out and then I will rank which is cloud chat once I do this it has been changed you can see let's just change let's say you want to create a branches to it both in one command you can go check out bunch and this will get a new Branch along with and also to switch to it I'm going to say easy to Branch press enter so it says command I will be switched to easy punch let's try to make some change let's add new fight and make it uh modify or txt something right so I'm gonna say this is my new file please push it to git from easy to do this can be anything it can be a code files yes if you are doing it for the first time you will also need to use the get config command what is the good config command if I show you so using git config command you can set your username and email right now I'm just pushing this pushing the file for the first time so let's see what is the status here when I look at status it says there's a new file which is created but not tracked and not committed yet so I'm going to say get add and then the dot or the name of the file so I'm going to say dot and then if I do get status now you can see the file has been added in the staging area let's comment it once I do get commit I'm going to get let's say add text file this is the comment message press enter and you get this in a sync git config is not there so your name and email address will configure automatically based on your username and password hostname please check that they are accurate so whenever you make a comment you get to see something here so if I show you uh the two comments that I made till now so these are the comments let's click on five comments here so when I make the comment it defines who has made the comment so here I'm saying nasi.c has made the comment which is my username so if I want this to be appearing correctly I need to change that using the git config command you need to do that by using git config Dash Dash globaluser.name or user.email to set the things if I don't do that and directly push it you will see what happened so you can push hyphen U origin and then ec2 batch once I do this it says let me check to get a remote repository if everything is connected so this is properly okay I didn't enter the origin correctly I'm going to say get push hyphen U origin and then the name of the branch is easy to catch once I do this without configuring my username it's going to ask me for that here so I'm going to say nasi.c and then the password I don't know the password so if you if you're stuck here uh it does not accept password here so you need to go to your GitHub to create a personal access token which I've already defined in my video so you can check out this video how on how you can create personal access token by going in the developer settings and uh creating a personal access token to fetch it so let me do that real quick for you to show it here so I'm going to click on generate new token I need to enter the password so this is my password now I'm going to say get tutorial I want to have access for repo also workflow I'm not using actually workflow but it's okay I'm going to add all these access here it should be okay enough I'm going to click on create one second generate token I get a token which can be used instead of password so I can use this to push and pull things so I'm going to paste this here and press enter it says starting to push once it push sets it I should be able to see it in my repository so I should see a file named as something.txt my file.txt in my repo so let's see that branch has something which is not there in the main so I can create a pull request and then merge it in the main branch so that is this file which is new and this is how you can do it let's say you want to set your uh username and password how will be doing that so if it is your first time working on working get in your machine you need to run this command which is get config hyphen hyphen global so if you go through this you can see the same thing is here so Global user dot name you put your username so my username is nasi.c and then if you want to set your email address you need to do the same thing but now with email ID so my email is cloud champ 4 4 at the rate gmail.com and then this should be done so next time whenever I push it I should be able to see my name and this email in the comment so if I show you in this comment it says Ubuntu not my name so people are not able to know who made the comment or who has made the change now if I made the change I should be able to see in the C.C rather than Ubuntu so let's try to do that I'm going to say LS let's try to make some change in the file.txt let's rename the file so I'm going to MV my file that txt to my file dot txt with a single T once I do that and I do get status it should show me that there's a change made which is the name of the file has been changed and then I can do it add dot to put this in staging area get comment hyphen M to Define what is this comment about so I'm going to say name changed and then I'm going to say get push hyphen U origin and the black which I'm going to push I'm going to push this on ec2 branch so I'm going to do that and then put the username again one more time okay now it has been pushed let's see the new comment so once I refresh this it will add the comment in the ec2 branch so you see now this time this has entered my name because I set it using git config command this is how you'll be using git config command I hope you have everything is cleared if you have any questions any doubt till now you can let me know so if you understood this and you want me to create create a tutorial on more complex things explaining you about get three base a git stash all that different commands you can let me know in the comment section but to help you out I've already posted few things I've already posted a resource for you on LinkedIn so if you're not connected with me on LinkedIn please do so because I because I share things and resources on my LinkedIn so if you see here I've updated I've uploaded a great checkbook yesterday which explains everything about different situations you can face when working with Git so if you work with Git and you want to clone a project start going through so you can see all the Hands-On details are present here this is for cloning you can I have clone there but I'm not able to see the proper code you can do status so depending on the situation you have all these answers in which screenshots so you can go through this document which can help you understand and work with Git if you are facing any issues along with this if you want to practice what you have learned today you can go to a game you can access the game the link is going to be in the description or you can just say get game once you do this this is the this is the SE are two different uh games you can use to learn about git so if you see here you can understand and learn about kids so here is Introduction to get comments detach your head all this Advanced topics starting from the basics here so you can learn about what is a comment a comment doesn't get repository record the Sam start and you can start doing that by running the commands and understanding and reading about things this is how you can do it so I would recommend you practicing your get knowledge because it is very important you can also use the other other URL which is oh my kit and this is also one of the great game to learn about how you can use git properly if you have any questions any doubt feel free to let me know in the comment section I hope this video was helpful thank you and have a good day
Info
Channel: Cloud Champ
Views: 8,729
Rating: undefined out of 5
Keywords: github, git tutorial for beginners, git commands, git handson, github tutorial, github for beginners, git and github, git for devops, git hands on tutorial, git commands with examples, git tutorial edureka, important git commands, important git concepts, git from scratch, git from vs code, github from scratch, learn git, how to use git, what is git, git basics, git crash course, git introduction, git devops, complete git tutorial, open source, devops, git push, git clone
Id: _kwJ2GCafuA
Channel Id: undefined
Length: 31min 23sec (1883 seconds)
Published: Sat May 20 2023
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.