Git Best Practices Guide
By Eric Pidoux
()
About this ebook
Git is a powerful versioning system. It is fast and logical, and helps developers to work with a team efficiently. The command set and learning curve of Git are pretty similar to and even better than any other SCM, and therefore it is comparatively easier to learn.
Starting with the basic Git commands, this book will take you on a journey to explore all the features of Git and provide you with a way to integrate Git in a team to set up Agile methods and Continuous Integration.
The book covers how to create and manage a repository on Git before moving on to explain the best practices to work with other developers as a team. It provides descriptions of Git's features, such as applying patch, using submodules, migrating from SVN, hooks, and cherry pick.
This book is invaluable to anyone who wants a thorough reference guide to go back to every time they have questions about any feature of Git.
Related to Git Best Practices Guide
Related ebooks
GitLab Cookbook Rating: 0 out of 5 stars0 ratingsNginx Essentials Rating: 0 out of 5 stars0 ratingsMonitoring Docker Rating: 0 out of 5 stars0 ratingsImplementing DevOps on AWS Rating: 0 out of 5 stars0 ratingsBuilding Web Applications with Flask Rating: 0 out of 5 stars0 ratingsHands-On Microservices with Kubernetes: Build, deploy, and manage scalable microservices on Kubernetes Rating: 5 out of 5 stars5/5Extending Jenkins Rating: 0 out of 5 stars0 ratingsAnsible for IT Experts Rating: 0 out of 5 stars0 ratingsHands-on GitHub Actions: Implement CI/CD with GitHub Action Workflows for Your Applications Rating: 0 out of 5 stars0 ratingsModular Programming with Python Rating: 0 out of 5 stars0 ratingsMastering Python Design Patterns Rating: 0 out of 5 stars0 ratingsBuilding a RESTful Web Service with Spring Rating: 5 out of 5 stars5/5Java 9 Concurrency Cookbook - Second Edition Rating: 0 out of 5 stars0 ratingsGit Essentials Rating: 4 out of 5 stars4/5Git: Mastering Version Control Rating: 0 out of 5 stars0 ratingsDocker: A Quick-Start Beginner's Guide Rating: 4 out of 5 stars4/5Git Version Control Cookbook Rating: 4 out of 5 stars4/5Mastering Git Rating: 0 out of 5 stars0 ratingsRy's Git Tutorial Rating: 0 out of 5 stars0 ratingsLearn Kubernetes & Docker - .NET Core, Java, Node.JS, PHP or Python Rating: 0 out of 5 stars0 ratingsLearn Docker - .NET Core, Java, Node.JS, PHP or Python: Learn Collection Rating: 5 out of 5 stars5/5Git in Practice Rating: 4 out of 5 stars4/5Learning Docker Rating: 5 out of 5 stars5/5Mastering Elasticsearch - Second Edition Rating: 0 out of 5 stars0 ratingsDevOps. How to build pipelines with Jenkins, Docker container, AWS ECS, JDK 11, git and maven 3? Rating: 0 out of 5 stars0 ratings
Programming For You
Python Programming : How to Code Python Fast In Just 24 Hours With 7 Simple Steps Rating: 4 out of 5 stars4/5Coding All-in-One For Dummies Rating: 4 out of 5 stars4/5Learn to Code. Get a Job. The Ultimate Guide to Learning and Getting Hired as a Developer. Rating: 5 out of 5 stars5/5HTML & CSS: Learn the Fundaments in 7 Days Rating: 4 out of 5 stars4/5Grokking Algorithms: An illustrated guide for programmers and other curious people Rating: 4 out of 5 stars4/5OneNote: The Ultimate Guide on How to Use Microsoft OneNote for Getting Things Done Rating: 1 out of 5 stars1/5SQL QuickStart Guide: The Simplified Beginner's Guide to Managing, Analyzing, and Manipulating Data With SQL Rating: 4 out of 5 stars4/5Hacking: Ultimate Beginner's Guide for Computer Hacking in 2018 and Beyond: Hacking in 2018, #1 Rating: 4 out of 5 stars4/5Excel : The Ultimate Comprehensive Step-By-Step Guide to the Basics of Excel Programming: 1 Rating: 5 out of 5 stars5/5Web Designer's Idea Book, Volume 4: Inspiration from the Best Web Design Trends, Themes and Styles Rating: 4 out of 5 stars4/5Python Projects for Beginners: A Ten-Week Bootcamp Approach to Python Programming Rating: 0 out of 5 stars0 ratingsPYTHON: Practical Python Programming For Beginners & Experts With Hands-on Project Rating: 5 out of 5 stars5/5Learn PowerShell in a Month of Lunches, Fourth Edition: Covers Windows, Linux, and macOS Rating: 0 out of 5 stars0 ratingsLinux: Learn in 24 Hours Rating: 5 out of 5 stars5/5Python: For Beginners A Crash Course Guide To Learn Python in 1 Week Rating: 4 out of 5 stars4/5C++ Learn in 24 Hours Rating: 0 out of 5 stars0 ratingsHTML in 30 Pages Rating: 5 out of 5 stars5/5Java for Beginners: A Crash Course to Learn Java Programming in 1 Week Rating: 5 out of 5 stars5/5Learn JavaScript in 24 Hours Rating: 3 out of 5 stars3/5SQL All-in-One For Dummies Rating: 3 out of 5 stars3/5Beginning Programming with Python For Dummies Rating: 3 out of 5 stars3/5Python: Learn Python in 24 Hours Rating: 4 out of 5 stars4/5Raspberry Pi Cookbook for Python Programmers Rating: 0 out of 5 stars0 ratings
Reviews for Git Best Practices Guide
0 ratings0 reviews
Book preview
Git Best Practices Guide - Eric Pidoux
Table of Contents
Git Best Practices Guide
Credits
About the Author
About the Reviewers
www.PacktPub.com
Support files, eBooks, discount offers, and more
Why subscribe?
Free access for Packt account holders
Preface
What this book covers
What you need for this book
Who this book is for
Conventions
Reader feedback
Customer support
Errata
Piracy
Questions
1. Starting a Git Repository
Configuring Git
Initializing a new repository
Cloning an existent repository
Working with the repository
Adding a file
Committing a file
Pushing a file
Removing a file
Checking the status
Ignoring files
Summary
2. Working in a Team Using Git
Creating a server repository
Local
SSH
Git
HTTPS
Pushing data on remote repositories – Jim's case
Pulling data from the repository
Creating a patch
Working with branches
Creating a branch
Checking out a branch
Playing with a branch
The difference between branches
Tracking branches
Deleting a branch from the remote
Merging
Fast forward merge
Merge commit
Other merging strategies
Rebase
Cherry-pick
Using tags
Creating and deleting tags
Summary
3. Finding and Resolving Conflicts
Finding content inside your repository
Searching file content
Showing the current status
Exploring the repository history
Viewing changes
Stashing your changes
Cleaning your mistakes
Reverting uncommitted changes
The git reset command
Editing a commit
Canceling a commit
Rewriting commit history
Solving merge conflicts
Searching errors with git bisect
Fixing errors by practical examples
Summary
4. Going Deeper into Git
Migrating an SVN repository to Git
Preparing for SVN to Git migration
Migrating from SVN to Git
Cleaning your commits
Pushing content on Git
Migrating branches and tags
Another easy way to migrate
Using Git within an SVN environment
Setting up your repository
Working with Git SVN
Managing Git submodules
Adding a submodule
Cloning a project with submodules
Removing a submodule
Using a subtree instead of a submodule
Adding a subproject with a subtree
Contributing on a subtree
Creating and applying patches
Creating a patch
Mailing the patch
Applying the patch
Git hooks
Client hooks
Server hooks
More about hooks
Installing a hook
A hook example
Customizing Git
Summary
5. Using Git for Continuous Integration
Creating an efficient branching system
Git flow
Feature branches
Release branches
Hotfix branches
BPF – Branch Per Feature
Working with Continuous Integration using Git
Git tools you might like
Git GUI clients
On Linux
On Windows
On Mac
Repository management
Summary
Index
Git Best Practices Guide
Git Best Practices Guide
Copyright © 2014 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, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be 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.
First published: November 2014
Production reference: 1141114
Published by Packt Publishing Ltd.
Livery Place
35 Livery Street
Birmingham B3 2PB, UK.
ISBN 978-1-78355-373-0
www.packtpub.com
Credits
Author
Eric Pidoux
Reviewers
Paulo Alcantara
Edward E Griebel Jr
Scott M. Spear
Commissioning Editor
Dipika Gaonkar
Acquisition Editor
Llewellyn Rozario
Content Development Editor
Melita Lobo
Technical Editors
Pratik More
Humera Shaikh
Copy Editor
Sayanee Mukherjee
Project Coordinator
Kinjal Bari
Proofreaders
Paul Hindle
Samantha Lyon
Indexer
Hemangini Bari
Graphics
Ronak Dhruv
Valentina D'silva
Disha Haria
Abhinash Sahu
Production Coordinator
Melwyn D'sa
Cover Work
Melwyn D'sa
About the Author
Eric Pidoux has a Master's degree in Computer Science from Miage Aix-Marseille and is currently working as a lead web developer at createur.ch, Lausanne, Switzerland. He started learning PHP 10 years ago and is now a Symfony2 ninja who likes coding as well as drinking beer.
He has worked as a technical reviewer on GitLab Repository Management and Extending Symfony2 Web Application Framework, both by Packt Publishing.
I would like to dedicate this book to my father and thank all my friends and, of course, my awesome family.
About the Reviewers
Paulo Alcantara is a software engineer at C.E.S.A.R, a company based in Recife, Brazil. He works on UEFI firmware development, where he has an equivalent experience of over 4 years. His previous employers include Intel Corporation, Nokia Institute of Technology, and ProFUSION embedded systems. He graduated from high school and is a free software hacker who is interested in filesystems, storages, bootloaders, operating systems, and BIOS/UEFI firmware. He has experience working with C, C++, x86 assembly language, Python, Lisp, Perl, and Bash. He is the author of NTFS and XFS filesystem drivers of the SYSLINUX bootloader. He is also the excore developer of the PySide project and contributed to BlueZ (Linux Bluetooth stack) and Enlightenment Foundation Libraries (EFL). Currently, in his free time, he works on a BSD-licensed UEFI driver for the UDF/ECMA-167 filesystem.
I would like to thank my team and project manager at C.E.S.A.R (Victor Gouveia, Mauro Faccenda, Thiago Carneiro, Carlos Leal, and Tarciana Mello) and my parents, especially my mother (Morgana Oliveira) who made me enough coffee to get the review on this book done.
Edward E Griebel Jr has been developing enterprise software for over 20 years in C, C++, and Java. He has a Bachelor of Science degree in Computer Engineering. He is currently a middleware architect at a leading payroll and financial services provider in the US, focusing