Using github development process in your company


Published on

This a description of how to use the Github development philosophy in a software product development and the technical considerations.

Published in: Technology
1 Like
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Using github development process in your company

  1. 1. USING GITHUBDEVELOPMENT PROCESS IN“(YOUR COMPANY HERE)”By @adrian2112 & @edolopez from @icalialabs
  2. 2. Background Software development is hard. Agile methodologies available aren‟t enough. Lot of tests, lot of deals around. Constant problems with stakeholders, so let‟s make this easy. Proposal: “How Github uses Github to build Github”
  3. 3.  Pull request A simple discussion about code, feature and strategy.
  4. 4. How to use it?
  5. 5. Making pull requests1: Updating remote branches and master on localmachine (master) % git fetch (master) % git pull origin master ** There shouldn’t be any conflicts. If so, your master has something bad, i.e. somebody forced a push to master.2: Make a new branch from master, commit changesand upload to „Github|Bitbucket|*‟ (master) % git checkout –b new_branch (new-branch) % git add . (new-branch) % git commit -m "Algunos cambios" (new-branch) % git push origin mi-nuevo-branch ** Now you or somebody can accept changes via github|bitbucket|*.
  6. 6. Additional: Obsolete branch, i.e. Github can not mergeas fast-forward or color status is different than green.- Update remote branches on local machine(new-branch) % git fetch- Make interactive rebase in order to align local masterwith remote master(new-branch) % git rebase -i origin/master(new-branch) % git push origin mi-nuevo-branch** Now pull request should appear green and ready to push directly to master.
  7. 7. Github_____________________________________________________________________________ Bitbucket
  8. 8. Approving pull requests1: Update remote branches on local machine (master) % git fetch2: Open a local branch with branch interested for test (master) % git checkout -b testable origin/testable
  9. 9. 3: Run specs and make sure it works (testable) % bundle install; foreman start4: Add notes and discuss on Github. Otherwise, ifeverything‟s OK, merge pull request through Github
  10. 10. Issue tracker Everything inside a platform Centralizing efforts and attention Pull requests linked to issues (only on Github).
  11. 11. Pros & ConsPros Cons Time flexibility  Forcing pushes causes Distributed work conflict among people Master is always working same branch deployable  Everyone can Encourages to constant push, everyone can revision and work deploy No meetings  Team need to grasp All team involved the methodology  Crucial changes don‟t always follow this.
  12. 12. Thanks @rod_wilhelmy- @holman