KEMBAR78
Github developing stack | PPTX
Github developing Stack
vicente.bolea@gmail.com
Motivation
➢ Simplify your workflow
➢ Collaborate
➢ Show off your work
➢ Open Source
Scope 1. Git
2. Github
3. Slack
4. Travis CI
5. ZenHub
Git concepts
❏ Versioning source code… Why versioning will simplify your workflow?
❏ Multiple coders can write the same source code, git will help you to combine each
work.
❏ Made a mistake in the last modification, you can backtrack.
❏ No more mycode_v1.cpp, mycode_v2.cpp, …
❏ Easy to setup and tinker.
❏ Infinity extensions
Git mini-tutorial 1: Local git
$ git init
$ git add mycode.cpp
$ git commit -m ‘First commit’
$ git push
Git mini-tutorial 2: Sync with
master
$ git remote add origin “your github repo”
$ git fetch # Sync with github, keep your local code intact
$ git pull # Update to the latest version in github
# What if there was a conflict?
$ git pull --rebase && git push
Git mini-tutorial 3:
Branches
$ git branch # list branches
$ git checkout -b “your new branch” #create
$ git checkout -t origin/”remote branch”
#download
$ git merge --no-ff master # merge master into
your branch
Github ★ Using git you need remote servers, github
provides for free to you
★ Boost git by adding collaborative features
★ Nice UI for git
★ Secure and fast
★ Show off your code
★ Engage in Open Source projects
Github
limitations
★ Github fails to offer important features:
○ Project management tools
○ Real-time communication
○ Code analysis tools
○ Continuous integration tools
★ Yet, it provides a way to add integrations,
here is my selection:
○ Slack, for communication
○ ZenHub, for project management
○ Travis CI, for continuous integration
BONUS: Github
student developer
pack
You are eligible for this pack!
Slack
➢ Github does not offer real-time communication
➢ If you need to chat, call, or make a
videoconference. What will you use in your
team?
➢ Slack gives you that while is totally integrated
with github (Among more things)
➢ Be notified when someone change the code or
open an issue
Zenhub
● Github doesn’t provide Project management tools (PMS).
● The size of the team is proportional to the importance of PMS.
● Yet, we are CS engineers not PM experts
● Agile project management is a simple and effective PM technique
suitable for software dev.
Travis CI
➢ What is whenever you
push your code to github
you could check it works
➢ Maybe not important for
you, what if you are
working in a team?
➢ Block merges until the test
passes
➢ Deployment

Github developing stack

  • 1.
  • 2.
    Motivation ➢ Simplify yourworkflow ➢ Collaborate ➢ Show off your work ➢ Open Source
  • 3.
    Scope 1. Git 2.Github 3. Slack 4. Travis CI 5. ZenHub
  • 4.
    Git concepts ❏ Versioningsource code… Why versioning will simplify your workflow? ❏ Multiple coders can write the same source code, git will help you to combine each work. ❏ Made a mistake in the last modification, you can backtrack. ❏ No more mycode_v1.cpp, mycode_v2.cpp, … ❏ Easy to setup and tinker. ❏ Infinity extensions
  • 5.
    Git mini-tutorial 1:Local git $ git init $ git add mycode.cpp $ git commit -m ‘First commit’ $ git push
  • 6.
    Git mini-tutorial 2:Sync with master $ git remote add origin “your github repo” $ git fetch # Sync with github, keep your local code intact $ git pull # Update to the latest version in github # What if there was a conflict? $ git pull --rebase && git push
  • 7.
    Git mini-tutorial 3: Branches $git branch # list branches $ git checkout -b “your new branch” #create $ git checkout -t origin/”remote branch” #download $ git merge --no-ff master # merge master into your branch
  • 8.
    Github ★ Usinggit you need remote servers, github provides for free to you ★ Boost git by adding collaborative features ★ Nice UI for git ★ Secure and fast ★ Show off your code ★ Engage in Open Source projects
  • 9.
    Github limitations ★ Github failsto offer important features: ○ Project management tools ○ Real-time communication ○ Code analysis tools ○ Continuous integration tools ★ Yet, it provides a way to add integrations, here is my selection: ○ Slack, for communication ○ ZenHub, for project management ○ Travis CI, for continuous integration
  • 10.
    BONUS: Github student developer pack Youare eligible for this pack!
  • 11.
    Slack ➢ Github doesnot offer real-time communication ➢ If you need to chat, call, or make a videoconference. What will you use in your team? ➢ Slack gives you that while is totally integrated with github (Among more things) ➢ Be notified when someone change the code or open an issue
  • 12.
    Zenhub ● Github doesn’tprovide Project management tools (PMS). ● The size of the team is proportional to the importance of PMS. ● Yet, we are CS engineers not PM experts ● Agile project management is a simple and effective PM technique suitable for software dev.
  • 13.
    Travis CI ➢ Whatis whenever you push your code to github you could check it works ➢ Maybe not important for you, what if you are working in a team? ➢ Block merges until the test passes ➢ Deployment