O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

GitHub Essentials

Book Description

Unleash the power of collaborative development workflow using GitHub, one step at a time

About This Book

  • Effectively use GitHub by learning its key features that leverage the power of Git and make collaboration on code easy to work with.
  • Be more productive on the development workflow of your projects using the valuable toolset that GitHub provides.
  • Explore the world of GitHub by following simple step-by-step real world scenarios accompanied by helpful, explanatory screenshots

Who This Book Is For

Intended for experienced or novice developers with a basic knowledge of Git. If you ever wanted to learn how big projects like Twitter, Google or even GitHub collaborate on code then this book is for you

What You Will Learn

  • Create and upload repositories to your account
  • Create organizations and manage teams with different access levels on repositories
  • Use effectively the issue tracker and add context to issues with labels and milestones
  • Schedule and release versions of your software
  • Work effectively with a team and collaborate on code
  • Create, access, and personalize your user account and profile settings
  • Build a community around your project using the sophisticated tools GitHub provides
  • Build easy to deploy, free of charge static websites for your projects

In Detail

Whether you are an experienced developer or a novice, learning to work with Version Control Systems is a must in the software development world. Git is the most popular tool for that purpose and GitHub was built around it leveraging its powers by bringing it to the web.

Starting with the basics of creating a repository you will then learn how to manage the issue tracker, the place where discussion about your project takes place. Continuing our journey we will explore how to use the wiki and write rich documentation that will accompany your project. Organization and team management will be the next stop and then onto the feature that made GitHub so well known, Pull Requests. Next we focus on creating simple web pages hosted on GitHub and lastly we explore the settings that are configurable for a user and a repository.

Style and approach

A step-by-step guide with real world scenarios accompanied by helpful images. Each topic is thoroughly explained with hands-on-examples and code where needed. At the end of each chapter there is a Tips and tricks section presenting hidden or overlooked features of GitHub.

Downloading the example code for this book You can download the example code files for all Packt books you have purchased from your account at http://www.PacktPub.com. If you purchased this book elsewhere, you can visit http://www.PacktPub.com/support and register to have the files e-mailed directly to you.

Table of Contents

  1. GitHub Essentials
    1. Table of Contents
    2. GitHub Essentials
    3. Credits
    4. About the Author
    5. About the Reviewer
    6. www.PacktPub.com
      1. Support files, eBooks, discount offers, and more
        1. Why subscribe?
        2. Free access for Packt account holders
    7. Preface
      1. What this book covers
      2. What you need for this book
      3. Who this book is for
      4. Conventions
      5. Reader feedback
      6. Customer support
        1. Downloading the example code
        2. Downloading the color images of this book
        3. Errata
        4. Piracy
        5. Questions
    8. 1. Brief Repository Overview and Usage of the Issue Tracker
      1. Exploring the repository's main page
        1. Creating a new repository
        2. The commits page and a comparison with the git log command
        3. The branches page and a comparison with the git branch command
        4. The Raw, Blame, and History buttons
        5. The Watch, Star, and Fork buttons
        6. Changing the description and URL
      2. Learning how to use the powerful benefits of the issue tracker
        1. Creating a new issue
        2. Assigning issues to users
        3. Labels
          1. Why labels are a great asset to UX
          2. Creating new label names and setting different colors
          3. Using labels to group issues
        4. Milestones
          1. Why milestones are a great help when working with code versioning
          2. Creating a new milestone
          3. Adding issues to milestones
          4. Using milestones to see which issues are resolved or are yet to be resolved
        5. Tips and tricks
          1. Learning about the README file
          2. Navigating easily with keyboard shortcuts
      3. Summary
    9. 2. Using the Wiki and Managing Code Versioning
      1. Using the wiki
        1. Why wikis are a nice place to document your project
        2. Create a new wiki page
        3. Deleting a page
        4. A Markdown-powered wiki – an introduction to Markdown
        5. How to add a sidebar and a footer to your wiki
        6. Watching a wiki page's commit history and reverting to a previous state if needed
      2. Managing code versioning
        1. Creating a release
        2. Editing a release
        3. Pushing a tag from the command line
        4. Marking as prerelease
        5. Making a draft of a release
        6. Uploading your own files
      3. Tips and tricks
        1. Subscribing to new releases via atom feed
        2. Editing the wiki locally
          1. Installing gollum
          2. Cloning the wiki and see the preview in your browser
          3. Making changes locally and pushing to GitHub
      4. Summary
    10. 3. Managing Organizations and Teams
      1. The difference between users and organizations
      2. Organization roles and repository permission levels
      3. Creating an organization
      4. Global member privileges
      5. Repositories
      6. Teams – a great way to grant selective access to your organization projects
        1. Creating a team
        2. Inviting people
          1. Accepting an invitation
        3. Team members permissions
        4. Request to join a team
          1. Step 1 – as a user
          2. Step 2 – as a user
          3. Step 3 – as an owner or team maintainer
        5. Adding repositories to a team
      7. The People tab
        1. Managing access levels
        2. Difference between Members and Outside collaborators
        3. Demoting to an outside collaborator
        4. Invite members
      8. Organization settings
        1. Profile
        2. Team privacy
        3. The third-party access
        4. Audit log
        5. Tips and tricks
        6. How to transfer a project to an organization's namespace
        7. How to convert a user account into an organization
        8. Mention teams
        9. Organization feed only in dashboard
      9. Summary
    11. 4. Collaboration Using the GitHub Workflow
      1. Learn about pull requests
        1. Why pull requests are a powerful asset to work with
        2. The connection between branches and pull requests
          1. Create branches directly in a project – the shared repository model
          2. Create branches in your fork – the fork and pull model
        3. How to create and submit a pull request
          1. Use the Compare & pull request button
          2. Use the compare function directly
          3. Use the GitHub web editor
            1. The shared repository model
            2. The fork and pull model
          4. Submit a pull request
      2. Peer review and inline comments
        1. The layout of a pull request
        2. Inline comments
        3. Pull requests overview
        4. Correct mistakes and re-push to branch
      3. Merge the pull request
        1. Remove/restore a branch after the pull request is merged
        2. Revert a pull request
      4. Tips and tricks
        1. Close issues via commit messages
        2. Task lists in pull requests
        3. Downloading the diff of pull requests
        4. A global list of your open pull requests
        5. Adding a LICENSE file using the web editor
        6. Creating new directories using the web editor
      5. Summary
    12. 5. GitHub Pages and Web Analytics
      1. GitHub Pages
        1. User, organization, and project pages
        2. Creating a user or an organization page
        3. Creating a project page manually
        4. Creating a project page with GitHub page generator
        5. Updating a project page with GitHub page generator
        6. Using a custom domain
        7. How to customize your page using Jekyll
          1. Installing Jekyll
          2. Introduction to Jekyll
          3. Read more about Jekyll
      2. Web analytics
        1. Graphs
          1. Contributors – additions/deletions
          2. See a repository's traffic – visitors, clones, and popular content
          3. Commits over time
        2. Frequency of updates
        3. Network
        4. Members
        5. Pulse
      3. Tips and tricks
        1. Making use of pages metadata with Jekyll
      4. Summary
    13. 6. Exploring the User and Repository Settings
      1. User settings
        1. Profile
        2. Setting up multiple e-mails
        3. Managing your SSH keys
        4. Setting up two-factor authentication
      2. Repository settings
        1. Changing the default branch that appears in repository's main page
        2. Enabling/disabling the wiki
        3. Enabling/disabling the issue tracker
        4. Adding collaborators
        5. Transferring ownership – user to organization
        6. Deleting a repository
      3. Tips and tricks
        1. Finding the size of your repositories
        2. Fine-tuning e-mail notifications
      4. Summary
    14. Index