Skip to content

Instantly share code, notes, and snippets.

@nnutter
Last active August 29, 2015 14:06
Show Gist options
  • Save nnutter/b3dea2cad5991453b2d5 to your computer and use it in GitHub Desktop.
Save nnutter/b3dea2cad5991453b2d5 to your computer and use it in GitHub Desktop.

Introduction to GitHub

  1. Creating an account
    • It can be helpful to use a recognizable username.
    • May want to separate your personal account from your work account.
    • Associate your work email with account to get a free micro plan:
  2. Docs
  3. Profile
    • Repositories, Followers, Starred, Following
  4. Settings
    • Profile
      • It can be helpful to set your avatar. I recommend a portrait.
    • Emails
      • Associate your work email for free micro plan.
    • Security
      • Password security and two-factor authentication.
    • Notification center
      • Email vs. web vs. RSS
      • watching, automatically watching repos you have push access to
      • per-organization email routing
  5. News Feed
    • Watching repos and followed users
  6. Issues
    • Labels, Milestones
  7. Pull Requests
    • Various links, dest repo, source repo, pull request.
    • Status (icon and link)
  8. Creating a repo
  9. Forking
  10. Search
  11. Keyboard Shortcuts
  12. Setting up SSH key(s)
  13. Writing on GitHub

The Genome Organization

  1. Personal Repos vs. Organization Repos
  2. Organization RSS Feed
  3. Where should we fork this repository?

Introduction to APIPE Code Review

  1. How do I install 'hub'?
    • create, fork, pull-request
  2. How do I fork a repository?
  3. How do I make a pull request?
  4. How do I review a pull request?
  5. How do I know my pull request will be (or has been) reviewed?
  6. How do I git checkout a pull request?
  7. Merge Pull Request
  8. Introduction to CI
    1. Travis CI
    2. apipe-ci
      • Use Travis CI unless you need access to internal resources (not ideal).
      • Get APIPE to set it up.
      • Examples
      • genome/genome secret phrases:
        • Can one of the admins verify this patch?
        • CI, add author to whitelist. (.*CI\W+add\W+author\W+to\W+whitelist.*)
        • CI, test this. (.*CI\W+test\W+this.*)
        • CI, test this once. (.*CI\W+test\W+this\W+once.*)
        • CI, skip this. (.*CI\W+skip\W+this.*)
      • Details link.
    3. Lots of other services. Use what you want. Be aware of trade-offs.
  9. Questions/Policies
    • To +1/+2 or not.
    • To require/encourage multiple +1/+2 or not.
    • How long to wait before merge.
    • How aggressive to be with closing pull requests.
    • Should you wait for new +1/+2 if you push new commits?
  10. Comments
    • Make sure you leave a comment on the pull request if you push new commits. Otherwise no notification is sent.
    • Comment threading.
    • Mark moved Ptero repos from his username to genome and it transferred issues and pull requests successfully.
@acoffman
Copy link

acoffman commented Sep 8, 2014

Looks good! A couple of small suggestions:

As part of creating an account, I would strongly advise (require?) that they set up 2 factor authentication of some sort.

As part of notifications, I might talk about the notification center vs. email and how to pick which notifications go where.

@nnutter
Copy link
Author

nnutter commented Sep 8, 2014

Thanks. I'll mention 2 factor and password security. "Email vs. web" is "notification center vs. email".

@gatoravi
Copy link

Looks good ! One thing I'd be interested in learning about and I'm not sure if it already falls in one of the above categories is the dev-cycle. Lets say if I'm working on two different sub projects on the same repo do I make a branch for each of them and work on them separately. When I commit these back do I merge them both locally and submit one pull request or do I submit separate pull requests for the branches, do I delete the branches after that, basically just a brief and basic overview of the git workflow. Obviously this could be a session in itself but I think it might be helpful when we talk about how pull requests usually deal with one specific issue in a repo.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment