All right. 1
So whereas in the last lesson we were looking at local implementations of using Git and version control, 2
in this lesson we're going to talk about how you can create a remote repository, 3
so a repository that's hosted on somebody else's server or somebody else's computer by using GitHub. 4
Now most people would have heard of GitHub 5
and certainly by now you would have used GitHub many times in order to grab the skeleton projects that 6
we provided for some of the tutorials and challenges. 7
So if you haven't yet set up an account on GitHub then this is the time to do it. 8
So head over to github.com and simply fill out this quick form to create an account on GitHub. 9
So it's completely free and all you need to do is just confirm your email so that you can access it. 10
Once you've done that go ahead and sign in. 11
So once you've signed in you should be looking at this page and all we're going to do is we're going 12
to create a repository inside the browser based GitHub. 13
So if you navigate to this top right corner and click that plus arrow, then you can select new repository. 14
And I'm going to call my repository 15
same name 16
I guess we'll call that story. And let's give it a description. 17
Let's say 'My masterpiece.' Now by default all repositories that you create on GitHub are public. 18
That means that anyone can see all of the files inside your save repository. 19
So everything that you commit to your remote repository or to your GitHub repository will be public. 20
So if you don't want that then you can select private which requires a subscription on GitHub. 21
But in most cases if you're not doing anything that's top secret or if you're not developing technology 22
that is completely brand new, then having a public repository is not such a big problem. 23
And on the other hand as well you can see loads of other people's public repository and you can see 24
for example how they structure that code, 25
what is their style 26
and you can see how people do things. 27
So for example on GitHub there are whole repositories on things like swift flappy bird. 28
So it's the entire implementation of flappy bird in Swift and you can run it in a simulator or 29
you can also look through their code base to see how they did this. So this is the beauty of open source 30
code. 31
And as you develop in your journey of becoming a developer then you might find that you want to contribute 32
to other open source projects, 33
help them out a bit and work in a virtual team to try and contribute your knowledge and your programming 34
skills. 35
Oay. So now once I've selected public, the next thing is that I'm going to leave this part empty. 36
I'm not going to initialize a read me from my repository just yet. 37
So the next thing is I'm going to go ahead and click the big green button and create my repository. 38
So now you can see that there are two ways that they tell you you can set up your repository. 39
You can either set it up in GitHub for Mac on desktop their desktop client which I am not a big fan 40
of. 41
But instead what we're going to do is we're going to use the command line instructions to set up our 42
repository. 43
So we are going to push an existing repository that we've got locally onto this remote repository and 44
to do that we need to copy the address of our GitHub repository 45
and we're going to use these two lines of code in order to transfer or push our existing local repository 46
from the command line. 47
All right. So I'm currently inside my story directory which also happens to be the working directory 48
for this particular project. 49
And here I am going to again take a look at git log to see what previous commits we've got. 50
And you can see that we've got two previous commits. 51
And I would like to push both of these commits on to GitHub. 52
So to do that the first thing is creating a remote. So it's telling my local Git repository that I've 53
created a remote repository somewhere on the Internet and I want to transfer all of my commits over 54
there. 55
So the command that we're going to use is git remote add origin. 56
Now origin is simply the name of your remote and you can theoretically call it anything you want. 57
You can call it bacon if you want. 58
But by convention and it's highly recommended that you simply keep the name origin and the reason is 59
because most programs are used to the conventional naming and that means it will be much easier for 60
them to understand what's going on in your projects when they have a look at it instead of you doing 61
something completely different which will be very surprising and will be a lot harder for people to 62
understand what's going on. 63
So gid remote add origin and then we're going to paste the URL of our remote repository on Git 64
Hub and then we're going to go ahead and hit enter. 65
And now that remote is created so we can push our local repository onto our remote repository which is 66
called origin. 67
So we're going to say git push -u origin master. 68
And what this line of code does is that it pushes your local repository to the remote repository using 69
the u flag or the u option which basically links up your remote and your local repositories. And then 70
we're going to push it towards the remote that's called origin and we're going to push it to the branch 71
that's called master. 72
So the master branch is simply the default branch or the main branch of all of your commits. 73
And later on when we cover branching, then we're going to talk more about what is a master and what is 74
a branch. 75
But for now we're just saying that we're going to push our local repository onto this origin remote and 76
we're going to push it to the master branch. 77
So let's go ahead and hit enter. 78
And there's going to be a little bit of work being done in the background because it's actually going 79
to have to upload your local repository to the remote repository on GitHub servers and depending on 80
the size of your local repository this can take various amounts of time. 81
So now once we see our prompt, 82
so the flashing cursor or the dollar sign, that means our push is successful. 83
And as you can see it says, 'Branch master set up to track remote branch master from origin' 84
Sounds really confusing but if you head back over to GitHub and if you're on the same page, all you 85
have to do is hit COMMAND + R to refresh or just press the refresh button and you can see that all of 86
our files are now hosted on GitHub and it's complete with all of our commit messages. 87
So if you go to insights, graphs and go into network, you can actually see our mass the branch which currently 88
only has two save points or to commits. If you hover over them you can actually see the commit messages 89
of each of these. 90
So as you build out your project, as you add more commits either locally or pushing it remotely or probably 91
doing both, then you can see the progress of your files in your GitHub repository. 92
So now you can see all of the code if it's code file or in all cases just a text file, hosted on Git 93
Hub and you can point anybody towards this. 94
And there are actually cases where people do a lot of story writing using GitHub just because it's 95
so good at tracking your save points and being able to revert to previous versions in the past. 96
So for example, if you head over back to the main page and you go to your commits, you can see both of 97
those commits when they were committed 98
and also if you click on it you can see the version-- you can see the changes that were made at those 99
time points. 100
So if we have a look at chapter 1 you can see this is all we had at the point when we made our first 101
commit. 102
So previously we said that we have a working directory which is the directory where we initialized Git. 103
Then we can push our files to a staging area where we can pick and choose which files we want to commit. 104
Then once we're ready then we can commit our files or save safe point to our local repository. 105
So once you've done a few commits then you actually have this timeline of various commits. 106
And this is called your master branch. 107
So the master branch is your main branch of commits or save points and it is sequential. 108
And this is usually where your main progress is saved or committed. 109
Now later on we then introduced this idea of the remote repository. 110
The important thing to note is that you can have a local repository completely in parallel with a remote 111
repository. 112
Check the differences between them but you can also sync them so that they all the same. 113
But you can also sync them or push things from your local repository to your remote posturing. 114
So in our case, the local repository is the git file that we've got inside our story directory and the 115
remote repository is the git directory that we've got inside our story directory and the remote repository 116
is GitHub which hosts our code and also host all of the changes that were made in between the different 117
committees. 118
So we have this master branch of various commits first commit, second commit, third commit in our local 119
Git repository and when we performed the command git to push, then that effectively pushed all of those 120
commits, all of those various versions and changes and code pieces to our remote repository on GitHub. 121
So that's what Git pushed us. Now in the next lesson 122
I want to talk about using git ignore and how you can avoid uploading sensitive pieces of information 123
such as API keys or passwords to your remote repositories for example GitHub. 124
So all of that and more on the next lesson, 125
see you there.