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