Effective PyCharm Transcripts
Chapter: Source control
Lecture: Loading a project with source control

Login or purchase this course to watch this video and the rest of the course contents.
0:00 One of the things I love about PyCharm is its deep integration with source control.
0:03 It makes it feel so natural that you almost don't have to think about it.
0:08 So let's start by getting a project from GitHub now.
0:13 There is this button up here,
0:15 Git code from source control and I could come over here and type something in,
0:19 let's see the various options. Or I could even go over to mine,
0:23 GitHub account and click here and give me a list of all the GitHub
0:27 repose I have access to. And that's one thing I'd like to kind of start
0:31 from a different perspective though I'd like to start from.
0:34 Well let's just suppose you have a GitHub or some other kind of repository on
0:39 your system. How do you work with it?
0:41 So we're going to actually go over here to the GitHub repository and we're going
0:44 to clone it. Now when you clone a repository,
0:48 a lot of times you can come down here and copy this and it would show
0:53 that you gotta put the little Git thing on the end the extension.
0:57 But if you just copy the main repo name,
0:59 actually that's sufficient. So I want to clone that over to this location.
1:05 So I just made a folder,
1:06 let's suppose that's where I put my projects that I'm working on.
1:09 I'm gonna open up my terminal and I'm just going to type git clone this off
1:17 it goes let's cd in there really quick notice my prompt knows which branch I'm
1:23 on and all of those sorts of things,
1:24 I actually want to work in the ref one for now.
1:28 But when you get to the course I'm gonna swap it back to the main so
1:31 you'll be fine. And so git check out by the way with oh my Z
1:37 shell integration it actually gives you auto complete for the branch names.
1:41 I love that. I want to open up this project we have here in
1:46 PyCharm and have it work with the source control.
1:48 So like before what we could do is we could grab this and throw it into
1:52 PyCharm and it will open up but I actually want to work with just a
1:55 certain section. I just want to work with the podcast section.
2:00 So what we're gonna do is I'm going to throw that in here and you'll see
2:02 some really cool stuff. First of all,
2:05 PyCharm realized that there is a 'requirements.txt' and when there's a requirements.txt
2:10 that usually means you need a virtual environment.
2:14 If you're going to install third party packages,
2:16 you must be you really really should consider having a virtual environment dedicated to that project
2:20 So PyCharm is now helpfully suggesting that I'll go and let it do that
2:25 Now if we go over to our program here notice it says you're gonna need
2:28 requests to run this. So let's go and let that install.
2:32 So we've opened up our project but check this out.
2:36 We also already have git integration.
2:39 So we're on this ref branch,
2:41 if you click down here this whole list,
2:43 the branches and it knows which branch were on.
2:46 Remember I checked out that ref branch started main went over to ref So because this
2:53 file lives in the hierarchy of a Git hub repository,
2:57 low or git repository locally. PyCharm automatically detected that an added source code integration
3:03 For git how cool is that?
3:07 So now that it knows how to do things,
3:09 it knows that there is an active Git hub repo or get repo we have all
3:13 of our source control commands in particular.
3:16 This time it's a Git. If we opened up a subversion repository,
3:20 well then it would give us subversion commands.
3:22 So over here we've got things like update the project.
3:25 Notice all of these have hot keys basically.
3:28 So if we wanted to, you know,
3:29 we had changes on the server,
3:31 we could either click this button or command T and it will say we're gonna emerge
3:35 changes into the current branch. Or we could re base it.
3:39 Typically what I end up doing as I say,
3:41 don't show this again and just leave it as the default.
3:44 That's usually exactly what I want.
3:47 And then I could commit changes.
3:48 We don't have any changes yet,
3:50 but if I did and we have a change,
3:52 I could commit the change over here will show me details about that.
3:56 I could push the changes remember git is a two stage system.
4:00 I make changes but those changes build up locally in the repository and then when I'm
4:05 ready, all of those changes get pushed up to git hub or whatever the server is.
4:09 I can view the history of this file and here's all the different things
4:14 that happened to it and so on.
4:16 Very neat and I can't even revert it.
4:18 Suppose I don't like this change that I put here,
4:20 I say no, no, no,
4:21 just go back to the way it was and I love that feature.
4:24 I love it when I was exploring and going crazy and I'm like now that wasn't
4:29 the way I wanted to go push that button.
4:30 It goes right back to the last save point.
4:32 Also if you look up here,
4:34 there's a Git menu with even more options.
4:36 So we could merge things, we could work with branches,
4:40 we could check out the log,
4:41 we can do all sorts of stuff over on GitHub.
4:43 Like if I had forked repository,
4:45 I could sync it back. I could create a pull request.
4:48 I want to talk more about some of these things as we go.
4:51 But there are a lot of features available to as soon as git repo that are
4:55 not available directly right here. But the common ones you need right appear in source control toolbar.