Up and Running with Git Transcripts
Chapter: Teamwork: Open source and Pull Requests
Lecture: GitFlow branching style
Login or
purchase this course
to watch this video and the rest of the course contents.
0:01
We spent a long time talking about feature branches creating a branch, doing a bunch of work. Even the pain off the branch debt before we were
0:11
finished and then merging those changes back into the main branch. Well, working with open source is like this but it's spread out a little bit
0:19
more as we'll see. So typically with an open source workflow we've got the open
0:26
source project. It has it to get repository and there's an additional step instead of
0:30
working directly here because remember you might have just found this project,
0:35
you're not a contributor. You don't have permissions to write to this repository or make any changes. So even if you wanted to,
0:42
you couldn't work there instead. We're gonna fork this repository again. This is not a git thing but it's built on top of it over on git
0:52
hub and other hosting services. You can say that repository over there is interesting.
0:56
I also have an account just make a copy effectively clone it but then set my
1:01
copy of it as the hosted destination and then we go down our feature branch path Like I want to consider adding a feature to this open source project.
1:10
So I'm gonna on my repository create a feature branch. Do all the work just like we described before when I'm ready to I propose that
1:19
ready to commit that back. Instead of syncing back to the main branch on my repository which will get me out
1:26
of sync with the related or linked open source project. What I'm going to do is create a pull request back to the original repository.
1:37
The people who run that will get a notification. They'll see all the changes I've made just like before. We'll see the two yellow changes.
1:45
The red change, the green change. I'll add some comments and conversation and say, hey, this feature is amazing.
1:52
It looks like you're missing this function or whatever it is and here's how I built it up and I would love for you to accept it as the owner of the
1:59
original project. All they have to do is say that looks great. Boom, we'll take it and now it's automatically part of the original repository,
2:07
the original open source software. They don't have to give you any further permissions or access to it. And you're good to go,
2:16
you're now a contributor to that project, Not a full contributor because you don't control the repository but pretty darn close.
2:24
The final thing to do remember, in the feature branch we merged our feature branch into our main just in order to
2:32
remain in sync with the original project. We need to sync with them again, we'll see how to do that in the next chapter as well.
2:41
And now we've merged effectively the changes back into our own project. Now that's not done because we did a direct merge.
2:49
Although technically you could do that, it's done because the original hosted repository changed and we have a mechanism to sync these
2:57
two different remote hosted repositories. Alright, this is what we're gonna do again, even if you're just doing teamwork on your own.
3:06
This is an interesting way to work. It could be that you create the pull requests, but just back to your own repository,
3:11
you saw the github was suggesting that. But this is the git flow way that people contribute to open source. It's going to be a lot of fun.