Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
May 31, 2013
Branching Models basic, Merging & how Github's pull request work
May 31, 2013
More Decks by Dimitris Tsironis
See All by Dimitris Tsironis
Other Decks in Technology
See All in Technology
See All Featured
Git 201 FreeFriday @ Teipir
Open-source & (Coffee)Script addict, Technology afficcionado
Previously on Free Fridays...
How can we work more effectively in a team?
Introducing Branching have multiple versions of the same project work
async & simultaneously safer & more clean way to do things very “cheap” branches
Git This is where the Git magic is happening!
creating a branch $ git branch <new-branch-name> # Creates a
new branch $ git checkout <new-branch-name> # Switch to new branch $ git branch # Check your local branches
creating a branch #2 # Creates a new branch and
switches to it immediately $ git checkout -b <new-branch-name>
Now, you can code as hard as you can!
Cool story, bro! But, how can we move our code
to our main branch and continue with our lives?
Merging Merge two branches Keep the chances you want to
keep You’re in control It’s easier in Git than in other VCS
merging a local branch $ git checkout <dest-branch> # Switch
to destination $ git merge <branch-name> # Merge the specified branch $ git log # Check if everything is fine
Once you’ve finished... You should do some housekeeping!
deleting a branch # Deletes branch, but keeps commits $
git branch -d <branch-name> # Force deletes everything, both branch and its commits $ git branch -D <branch-name> # USE WISELY!!
The Github way How Github handles branches & merging
Branches on Github Nothing special here Push your branches on
Github Has some awesome tools for branches
pushing to Github # Push branch on Github $ git
push origin <branch-name>
Pull Requests A nice, Web 2.0 way to handle merges,
branch and working in a team
Pull requests Promoting collaboration Encouraging open source contributions (fork) Discussing
features & changes on the go Merge without hassle and delete the branch
The real power is in the details! Let’s see...
Pull requests: reloaded Discussion for almost everything Can be created
before coding starts You have a timeline history of commits Forum-like functionality lots of integrations and extra tools
Extra tig (apt-get install tig, brew install tig) Github Help
Git basics presentation Git documentation
And, as always, practice, practice, PRACTICE!