23,99 €
This book will teach you what you need to know to start using GitHub effectively for collaborating and working on your software projects.
Key FeaturesEffectively use GitHub by learning its key features to 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.Book Description
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 discussions about your project take place. Continuing our journey, we will explore how to use the wiki and write rich documentation that will accompany your project. You will also master organization/team management and some of the features that made GitHub so well known, including pull requests. Next, we will focus on creating simple web pages hosted on GitHub and lastly, we will explore the settings that are configurable for a user and a repository.
What you will learnCreate and upload repositories to your accountCreate organizations and manage teams with different access levels on repositoriesUse the issue tracker effectively and add context to issues with labels and milestonesCreate, access, and personalize your user account and profile settingsBuild a community around your project using the sophisticated tools GitHub providesCreate GitHub pages and understand web analyticsWho this book is for
This book is for experienced or novice developers with a basic knowledge of Git. If you ever wanted to learn how big projects such as Twitter, Google, or even GitHub collaborate on code, then this book is for you.
Achilleas Pipinellis is an open source enthusiast and tries to get involved in as many projects as possible. He was introduced to Linux almost 10 years ago and haven't looked back since. His distribution of choice is Arch Linux, a lightweight and flexible system that adheres to the KISS philosophy. He likes trying new technologies, especially those that require some sort of special deployment. He also enjoys writing technical guides and articles that help people learn new stuff and strongly believes that comprehensive documentation is essential to a project's growth and recognition.
Sie lesen das E-Book in den Legimi-Apps auf:
Seitenzahl: 134
Veröffentlichungsjahr: 2018
Copyright © 2018 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author(s), nor Packt Publishing or its dealers and distributors, will be held liable for any damages caused or alleged to have been caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.
Commissioning Editor:Amarabha BanerjeeAcquisition Editor:Noyonika DasContent Development Editor:Roshan KumarTechnical Editor: Sushmeeta JenaCopy Editor:Safis EditingProject Coordinator:Hardik BhindeProofreader: Safis EditingIndexer:Pratik ShirodkarGraphics:Jason MonteiroProduction Coordinator:Aparna Bhagat
First published: September 2015 Second edition: June 2018
Production reference: 1290618
Published by Packt Publishing Ltd. Livery Place 35 Livery Street Birmingham B3 2PB, UK.
ISBN 978-1-78913-833-7
www.packtpub.com
Mapt is an online digital library that gives you full access to over 5,000 books and videos, as well as industry leading tools to help you plan your personal development and advance your career. For more information, please visit our website.
Spend less time learning and more time coding with practical eBooks and Videos from over 4,000 industry professionals
Improve your learning with Skill Plans built especially for you
Get a free eBook or video every month
Mapt is fully searchable
Copy and paste, print, and bookmark content
Did you know that Packt offers eBook versions of every book published, with PDF and ePub files available? You can upgrade to the eBook version at www.PacktPub.com and as a print book customer, you are entitled to a discount on the eBook copy. Get in touch with us at [email protected] for more details.
At www.PacktPub.com, you can also read a collection of free technical articles, sign up for a range of free newsletters, and receive exclusive discounts and offers on Packt books and eBooks.
Achilleas Pipinellis is an open source enthusiast who tries to get involved in as many projects as possible. He was introduced to Linux almost 10 years ago and hasn't looked back since. His distribution of choice is Arch Linux, a lightweight and flexible system that adheres to the KISS philosophy. He likes trying new technologies, especially those that require some sort of special deployment. He also enjoys writing technical guides and articles that help people to learn new stuff and strongly believes that comprehensive documentation is essential to a project's growth and recognition.
Umesh Ram Sharma has over 9 years, experience in architecture, design, and the development of scalable and distributed cloud-based applications. He has a master's degree in computer science and information technology. He worked as lead developer in companies in the past, and now works as a consultant for various clients. He's an expert in the utilization of the various offers of J2EE, Spring stack, AWS Cloud, MySql, and MongoDB, as well as various open source technologies and libraries.
He's the author of Practical Microservice and the reviewer of GitHub Essentials, first edition.
If you're interested in becoming an author for Packt, please visit authors.packtpub.com and apply today. We have worked with thousands of developers and tech professionals, just like you, to help them share their insight with the global tech community. You can make a general application, apply for a specific hot topic that we are recruiting an author for, or submit your own idea.
Title Page
Copyright and Credits
GitHub Essentials Second Edition
Packt Upsell
Why subscribe?
PacktPub.com
Contributors
About the author
About the reviewer
Packt is searching for authors like you
Preface
Who this book is for
What this book covers
To get the most out of this book
Download the example code files
Download the color images
Conventions used
Get in touch
Reviews
Brief Repository Overview and Usage of the Issue Tracker
Exploring the repository's main page
Creating a new repository
The commits page and a comparison with the git log command
The branches page and a comparison with the git branch command
The Raw, Blame, and History buttons
The Watch, Star, and Fork buttons
Changing the description and URL
Learning how to use the powerful benefits of the issue tracker
Creating a new issue
Assigning issues to users
Labels
Why labels are a great asset to UX
Creating new label names and setting different colors
Using labels to group issues
Milestones
Why milestones are a great help when working with code versioning
Creating a new milestone
Adding issues to milestones
Using milestones to see which issues are resolved or are yet to be resolved
Tips and tricks
Learning about the README file
Navigating easily with keyboard shortcuts
Summary
Using the Wiki and Managing Code Versioning
Using the wiki
Why wikis are a nice place to document your project
Creating a new wiki page
Deleting a page
A Markdown-powered wiki – an introduction to Markdown
How to add a sidebar and a footer to your wiki
Watching a wiki page's commit history and reverting to a previous state if needed
Managing code versioning
Creating a release
Editing a release
Pushing a tag from the command line
Marking as pre-release
Making a draft of a release
Uploading your own files
Tips and tricks
Subscribing to new releases via atom feed
Editing the wiki locally
Installing gollum
Cloning the wiki and viewing the preview in your browser
Making changes locally and pushing to GitHub
Summary
Managing Organizations and Teams
The difference between users and organizations
Organization roles and repository permission levels
Creating an organization
Global member privileges
Repositories
Teams – a great way to grant selective access to your organization projects
Creating a team
Inviting people
Accepting an invitation
Team member permissions
Requesting to join a team
Step one – as a user
Step two – as an owner or team maintainer
Adding repositories to a team
Team discussions
The People tab
Managing access levels
Difference between Members and Outside collaborators
Demoting to an outside collaborator
Organization settings
Profile
Security
Audit log
Third-party access
Teams
Tips and tricks
How to transfer a repository to an organization's namespace
How to convert a user account into an organization
Mentioning teams
Organization feed only in dashboard
Summary
Collaboration Using the GitHub Workflow
Learning about pull requests
Why pull requests are a powerful asset to work with
The connection between branches and pull requests
Creating branches directly in a project – the shared repository model
Creating branches in your fork – the fork and pull model
How to create and submit a pull request
Using the Compare & pull request button
Using the compare function directly
Using the GitHub web editor
The shared repository model
The fork and pull model
Submitting a pull request
Peer review and inline comments
The layout of a pull request
The review process
Correcting mistakes
Merging the pull request
Removing/restoring a branch after the pull request is merged
Reverting a pull request
Tips and tricks
Closing issues via commit messages
Task lists in pull requests
Downloading the diff of pull requests
A global list of your open pull requests
Adding a LICENSE file using the web editor
Creating new directories using the web editor
Summary
GitHub Pages and Web Analytics
GitHub Pages
Creating a user or an organization page
Creating a project page
Choosing a theme to style your page
Using a custom domain
Introducing Jekyll
Installing Jekyll
Customizing your page using Jekyll
Read more about Jekyll
Web analytics
Pulse
Contributors – additions/deletions
Community profile
Commits over time
Code frequency
Dependency graph
Network
Forks
Traffic
Tips and tricks
Making use of Github Pages' metadata with Jekyll
Summary
Exploring the User and Repository Settings
User settings
Profile
Setting up multiple emails
Managing your SSH keys
Setting up two-factor authentication
Repository settings
Changing the default branch that appears in a repository's main page
Enabling/disabling the wiki
Enabling/disabling the issue tracker
Adding collaborators
Transferring ownership – user to organization
Deleting a repository
Tips and tricks
Finding the size of your repositories
Fine-tuning email notifications
Summary
Other Books You May Enjoy
Leave a review - let other readers know what you think
GitHub is the leading code-hosting platform with literally millions of open source projects having their code hosted on it. In conjunction with Git, it provides the means for a productive development workflow and is the preferred tool among developers.
Starting with the basics of creating a repository, you will then learn how to manage the issue tracker, where your project can be discussed. 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 the pull requests, which made GitHub so well known.
Next, we will focus on creating simple web pages hosted on GitHub, and, lastly, we will explore the settings that are configurable for a user and a repository.
This book is intended for experienced or novice developers with a basic knowledge of Git. If you ever wanted to learn how big projects such as Twitter, Google, or even GitHub, collaborate on code, then this book is for you.
Chapter 1, Brief Repository Overview and Usage of the Issue Tracker, explains some of the main features GitHub provides and what you can make out of them. The issue tracker is the heart of communication between a project's developers and/or users. Consider it to be a notepad dedicated to each repository where you track bugs, reports, feature requests, and anything else that can be written down. GitHub has implemented many other features that sit on top of the issue tracker, such as labels and milestones, which provide the ability to better visualize and categorize all the issues.
Chapter 2, Using the Wiki and Managing Code Versioning, helps you learn how to create, edit, and maintain a wiki by providing a home for your documentation that will complement your project. You will also learn how to create a new release out of an existing branch or tag, accompanied by optional release notes. In this way, the end user can understand the changes from any previous versions.
Chapter 3, Managing Organizations and Teams, teaches you how to create and manage the organizations that you are the owner of. You will also learn how to create teams, add users to them, and assign different access levels according to your needs.
Chapter 4, Collaboration Using the GitHub Workflow, focuses on how to work with branches and pull requests, the most powerful features of GitHub.
Chapter 5, GitHub Pages and Web Analytics, takes you through how to build web pages around your project, hosted exclusively on GitHub. You have the ability to make static web pages using HTML, CSS, and JavaScript.
Chapter 6, Exploring the User and Repository Settings, explores the most common and essential settings of a user and a repository. As a user, there is a lot of information you can set up in your user settings page, such as associating more than one email to your account, adding multiple SSH keys, or setting up two-factor authentication. Similarly, some functionalities of a repository can be set up via its settings page. For example, you can enable or disable the wiki pages and grant write access to the public, or completely disable the issue tracker.
For this book, you'll need Git (any version will do) and a GitHub account.
You can download the example code files for this book from your account at www.packtpub.com. If you purchased this book elsewhere, you can visit www.packtpub.com/support and register to have the files emailed directly to you.
You can download the code files by following these steps:
Log in or register at
www.packtpub.com
.
Select the
SUPPORT
tab.
Click on
Code Downloads & Errata
.
Enter the name of the book in the
Search
box and follow the on screen instructions.
Once the file is downloaded, please make sure that you unzip or extract the folder using the latest version of:
WinRAR/7-Zip for Windows
Zipeg/iZip/UnRarX for Mac
7-Zip/PeaZip for Linux
The code bundle for the book is also hosted on GitHub at https://github.com/PacktPublishing/GitHub-Essentials-Second-Edition. In case there's an update to the code, it will be updated on the existing GitHub repository.
We also have other code bundles from our rich catalog of books and videos available at https://github.com/PacktPublishing/. Check them out!
We also provide a PDF file that has color images of the screenshots/diagrams used in this book. You can download it here: http://www.packtpub.com/sites/default/files/downloads/GitHubEssentialsSecondEdition_ColorImages.pdf.
There are a number of text conventions used throughout this book.
CodeInText: Indicates code words in text, database table names, folder names, filenames, file extensions, pathnames, dummy URLs, user input, and Twitter handles. Here is an example: "Mount the downloaded WebStorm-10*.dmg disk image file as another disk in your system."
A block of code is set as follows:
echo "\n## Description\n\nGitHub for dummies" >> README.md git add README.md git commit -m "Add second level header to README file" git push origin add_description
When we wish to draw your attention to a particular part of a code block, the relevant lines or items are set in bold:
echo "\n## Description\n\nGitHub for dummies" >> README.md git add README.md
git commit -m "Add second level header to README file"
git push origin add_description
Any command-line input or output is written as follows:
mkdir -p ~/github-essentials cd $_
Bold: Indicates a new term, an important word, or words that you see onscreen. For example, words in menus or dialog boxes appear in the text like this. Here is an example: "Select System info from the Administration panel."
Feedback from our readers is always welcome.
General feedback: Email [email protected]
