0% found this document useful (0 votes)
7 views6 pages

Gitpro

This document includes dedications to the authors' families and a comprehensive list of contributors to the English version of the Pro Git book. It also provides an introduction outlining the structure of the book, which covers Git fundamentals, advanced commands, and various workflows, along with appendices for practical examples and command references. The content is designed to guide readers through learning and mastering Git effectively.

Uploaded by

David Ruiz
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views6 pages

Gitpro

This document includes dedications to the authors' families and a comprehensive list of contributors to the English version of the Pro Git book. It also provides an introduction outlining the structure of the book, which covers Git fundamentals, advanced commands, and various workflows, along with appendices for practical examples and command references. The content is designed to guide readers through learning and mastering Git effectively.

Uploaded by

David Ruiz
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Dedications

To my wife, Becky, without whom this adventure never would have begun. — Ben

This edition is dedicated to my girls. To my wife Jessica who has supported me for all of these years
and to my daughter Josephine, who will support me when I’m too old to know what’s going on. —
Scott

4
Contributors
Since this is an Open Source book, we have gotten several errata and content changes donated over
the years. Here are all the people who have contributed to the English version of Pro Git as an open
source project. Thank you everyone for helping make this a better book for everyone.

Contributors as of 55b541e9:

4wk- Johannes Schindelin Sean Head


Adam Laflamme John Lin Sean Jacobs
Adrien Ollier Jon Forrest Sebastian Krause
Akrom K Jon Freed Sergey Kuznetsov
Alan D. Salewski Jonathan Severino Lorilla Jr
Alba Mendez Jordan Hayashi Shengbin Meng
Aleh Suprunovich Joris Valette Sherry Hietala
Alex Povel Josh Byster Shi Yan
Alexander Bezzubov Joshua Webb Siarhei Bobryk
Alexandre Garnier Junjie Yuan Siarhei Krukau
Alfred Myers Junyeong Yim Skyper
Amanda Dillon Justin Clift Smaug123
Andreas Bjørnestad Jörn Auerbach Snehal Shekatkar
Andrei Dascalu Kaartic Sivaraam Solt Budavári
Andrei Korshikov KatDwo Song Li
Andrew Blommestyn Katrin Leinweber Stephan van Maris
Andrew Kreimer Kausar Mehmood Steven Roddis
Andrew Layman Keith Hill Stuart P. Bentley
Andrew MacFie Kenneth Kin Lum SudarsanGP
Andrew Metcalf Kenneth Lum Suhaib Mujahid
Andrew Murphy Klaus Frank Susan Stevens
AndyGee Kristijan "Fremen" Velkovski Sven Selberg
AnneTheAgile Krzysztof Szumny Thanix
Anthony Loiseau Kyrylo Yatsenko Thomas Ackermann
Anton Trunov Károly Ozsvárt Thomas Hartmann
Antonello Piemonte Lars Vogel Tiffany
Antonino Ingargiola Laxman Tom Schady
Ardavast Dayleryan Lazar95 Tomas Fiers
Artem Leshchev Leonard Laszlo Tomoki Aonuma
Atul Varma Linus Heckemann Trevor Jobling
Bagas Sanjaya Logan Hasson Tvirus
Ben Sima Louise Corrigan Tyler Cipriani
Benjamin Dopplinger Luc Morin Ud Yzr
Billy Griffin Lukas Röllin UgmaDevelopment
Bob Kline Marat Radchenko Vadim Markovtsev
Bohdan Pylypenko Marcin Sędłak-Jakubowski Vangelis Katsikaros
Borek Bernard Marie-Helene Burle Vegar Vikan
Brett Cannon Marius Žilėnas Victor Ma
Buzut Markus KARG Vipul Kumar
C Nguyen Marti Bolivar Vitaly Kuznetsov
Cadel Watson Mashrur Mia (Sa'ad) Volker Weißmann

5
Carlos Martín Nieto Masood Fallahpoor Volker-Weissmann
Carlos Tafur Mathieu Dubreuilh Wesley Gonçalves
Chaitanya Gurrapu Matt Cooper William Gathoye
Changwoo Park Matt Trzcinski William Turrell
Christian Decker Matthew Miner Wlodek Bzyl
Christoph Bachhuber Matthieu Moy Xavier Bonaventura
Christoph Prokop Mavaddat Javid Y. E
Christopher Wilson Max Coplan Yann Soubeyrand
CodingSpiderFox Michael MacAskill Your Name
Cory Donnelly Michael Sheaver Yue Lin Ho
Cullen Rhodes Michael Welch Yuhang Guo
Cyril Michiel van der Wulp Yunhai Luo
Damien Tournoud Miguel Bernabeu Yusuke SATO
Dan Schmidt Mike Charles agkhall
Daniel Hollas Mike Pennisi ajax333221
Daniel Knittl-Frank Mike Thibodeau alex-koziell
Daniel Shahaf Mikhail Menshikov allen joslin
Daniel Sturm Mitsuru Kariya andreas
Daniele Tricoli Máximo Cuadros applecuckoo
Daniil Larionov Niels Widger atalakam
Danny Lin Niko Stotz axmbo
David Rogers Nils Reuße bermudi
Davide Angelocola Noelle Leigh bripmccann
Denis Savitskiy OliverSieweke brotherben
Dexter Olleg Samoylov delta4d
Dexter Morganov Osman Khwaja devwebcl
DiamondeX Otto Kekäläinen dualsky
Dieter Ziller Owen evanderiel
Dino Karic Pablo Schläpfer eyherabh
Dmitri Tikhonov Pascal Berger flip111
Dmitriy Smirnov Pascal Borreli flyingzumwalt
Doug Richardson Patrice Krakow franjozen
Duncan Dean Patrick Steinhardt goekboet
Dustin Frank Pavel Janík grgbnc
Ed Flanagan Paweł Krupiński haripetrov
Eden Hochbaum Pessimist i-give-up
Eduard Bardají Puig Peter Kokot iprok
Eric Henziger Petr Bodnar jingsam
Explorare Petr Janeček jliljekrantz
Ezra Buehler Petr Kajzar johnhar
Fabien-jrt Phil Mitchell leerg
Fady Nagh Philippe Blain maks
Felix Nehrke Philippe Miossec mmikeww
Filip Kucharczyk Pratik Nadagouda mosdalsvsocld
Fornost461 Rafi nicktime
Frank Raphael R noureddin
Frederico Mazzone Ray Chen patrick96
Frej Drejhammar Rex Kerr paveljanik
Guthrie McAfee Armstrong Reza Ahmadi pedrorijo91
HairyFotr Richard Hoyle peterwwillis
Hamid Nazari Ricky Senft petsuter

6
Hamidreza Mahdavipanah Rintze M. Zelle rahrah
Haruo Nakayama Rob Blanco rmzelle
Helmut K. C. Tessarek Robert P. Goldman root
Hemant Kumar Meena Robert P. J. Day sanders@[Link]
Hidde de Vries Robert Theis sharpiro
HonkingGoose Rohan D'Souza slavos1
Howard Roman Kosenko spacewander
Ignacy Ronald Wampler td2014
Igor Rory twekberg
Ilker Cat Ryan Cavicchioni uerdogan
Jan Groenewald Rüdiger Herrmann ugultopu
Jannick Kremer SATO Yusuke un1versal
Jaswinder Singh Sam Ford xJom
Jean-Noël Avila Sam Joseph xtreak
Jeroen Oortwijn Sanders Kleinfeld yakirwin
Jim Hill Sarah Schneider z-hed
Jin Park Saurav Sachidanand zwPapEr
Joel Davies Scott Bronson ᐯᕮᒪᗝᑕᕮᒣ
Johannes Dewender Scott Jones 狄卢

7
Introduction
You’re about to spend several hours of your life reading about Git. Let’s take a minute to explain
what we have in store for you. Here is a quick summary of the ten chapters and three appendices of
this book.

In Chapter 1, we’re going to cover Version Control Systems (VCSs) and Git basics — no technical
stuff, just what Git is, why it came about in a land full of VCSs, what sets it apart, and why so many
people are using it. Then, we’ll explain how to download Git and set it up for the first time if you
don’t already have it on your system.

In Chapter 2, we will go over basic Git usage — how to use Git in the 80% of cases you’ll encounter
most often. After reading this chapter, you should be able to clone a repository, see what has
happened in the history of the project, modify files, and contribute changes. If the book
spontaneously combusts at this point, you should already be pretty useful wielding Git in the time it
takes you to go pick up another copy.

Chapter 3 is about the branching model in Git, often described as Git’s killer feature. Here you’ll
learn what truly sets Git apart from the pack. When you’re done, you may feel the need to spend a
quiet moment pondering how you lived before Git branching was part of your life.

Chapter 4 will cover Git on the server. This chapter is for those of you who want to set up Git inside
your organization or on your own personal server for collaboration. We will also explore various
hosted options if you prefer to let someone else handle that for you.

Chapter 5 will go over in full detail various distributed workflows and how to accomplish them
with Git. When you are done with this chapter, you should be able to work expertly with multiple
remote repositories, use Git over email and deftly juggle numerous remote branches and
contributed patches.

Chapter 6 covers the GitHub hosting service and tooling in depth. We cover signing up for and
managing an account, creating and using Git repositories, common workflows to contribute to
projects and to accept contributions to yours, GitHub’s programmatic interface and lots of little tips
to make your life easier in general.

Chapter 7 is about advanced Git commands. Here you will learn about topics like mastering the
scary 'reset' command, using binary search to identify bugs, editing history, revision selection in
detail, and a lot more. This chapter will round out your knowledge of Git so that you are truly a
master.

Chapter 8 is about configuring your custom Git environment. This includes setting up hook scripts
to enforce or encourage customized policies and using environment configuration settings so you
can work the way you want to. We will also cover building your own set of scripts to enforce a
custom committing policy.

Chapter 9 deals with Git and other VCSs. This includes using Git in a Subversion (SVN) world and
converting projects from other VCSs to Git. A lot of organizations still use SVN and are not about to
change, but by this point you’ll have learned the incredible power of Git — and this chapter shows
you how to cope if you still have to use a SVN server. We also cover how to import projects from

8
several different systems in case you do convince everyone to make the plunge.

Chapter 10 delves into the murky yet beautiful depths of Git internals. Now that you know all
about Git and can wield it with power and grace, you can move on to discuss how Git stores its
objects, what the object model is, details of packfiles, server protocols, and more. Throughout the
book, we will refer to sections of this chapter in case you feel like diving deep at that point; but if
you are like us and want to dive into the technical details, you may want to read Chapter 10 first.
We leave that up to you.

In Appendix A, we look at a number of examples of using Git in various specific environments. We


cover a number of different GUIs and IDE programming environments that you may want to use
Git in and what is available for you. If you’re interested in an overview of using Git in your shell,
your IDE, or your text editor, take a look here.

In Appendix B, we explore scripting and extending Git through tools like libgit2 and JGit. If you’re
interested in writing complex and fast custom tools and need low-level Git access, this is where you
can see what that landscape looks like.

Finally, in Appendix C, we go through all the major Git commands one at a time and review where
in the book we covered them and what we did with them. If you want to know where in the book
we used any specific Git command you can look that up here.

Let’s get started.

You might also like