Git: Version Control for Everyone


Git: Version Control for Everyone
eBook: $23.99
Formats: PDF, PacktLib, ePub and Mobi formats
$19.19
save 20%!
Print + free eBook + free PacktLib access to the book: $63.98    Print cover: $39.99
$39.99
save 37%!
Free Shipping!
UK, US, Europe and selected countries in Asia.
Also available on:
Overview
Table of Contents
Author
Reviews
Support
Sample Chapters
  • A complete beginner's workflow for version control of common documents and content
  • Examples used are from non-techie, day to day computing activities we all engage in
  • Learn through multiple modes – readers learn theory to understand the concept and reinforce it by practical tutorials.
  • Ideal for users on Windows, Linux, and Mac OS X

Book Details

Language : English
Paperback : 180 pages [ 235mm x 191mm ]
Release Date : January 2013
ISBN : 1849517525
ISBN 13 : 9781849517522
Author(s) : Ravishankar Somasundaram
Topics and Technologies : All Books, Application Development, Beginner's Guides, Open Source, Web Development

Table of Contents

Preface
Chapter 1: Breathe Easy – Introduction to Version Control System
Chapter 2: Welcome Aboard – Installing Git
Chapter 3: Polishing Your Routine – How to Increase Everyday Productivity
Chapter 4: Split the Load – Distributed Working with Git
Chapter 5: Be a Puppet Master – Learn Fancy Features to Control Git's Functions
Chapter 6: Unleash the Beast – Git on Text-based Files
Chapter 7: Parallel Dimensions – Branching with Git
Chapter 8: Behind the Scenes – Basis of Git Basics
Index
  • Chapter 1: Breathe Easy – Introduction to Version Control System
    • Do you need help
    • What is a version control system
    • Why you need a version control system
    • Types of version control systems
      • Local version control system
        • Tidbits
      • Centralized version control system
      • Distributed version control system
    • Falling for Git
      • Atomicity
      • Performance
      • Security
    • Summary
    • Chapter 2: Welcome Aboard – Installing Git
      • Choosing your type – download your OS specific package
        • Windows
        • Linux
        • Mac
        • Installation
      • Time for action – installing Git on Windows
      • Time for action – installing Git on Mac
      • Time for action – installing Git on Linux
      • Summary
      • Time for action – configure Git in CLI mode
      • Adding your files to your directory
      • Time for action – adding files to your directory (GUI and CLI mode)
        • Ignore 'em
        • Bulk operations
          • .gitignore to the rescue
      • Time for action – usage of .gitignore
        • Undo addition
      • Committing the added files
      • Time for action – committing files in GUI mode
      • Time for action – committing files in CLI mode
      • Time for action – rescan in GUI mode
      • Checking out
      • Time for action – checking out using GUI mode
      • Time for action – checking out using CLI mode
      • Resetting
      • Time for action – reset using GUI mode
      • Time for action – reset using CLI mode
        • Git help
      • Summary
        • Chapter 4: Split the Load – Distributed Working with Git
          • Why share your files
            • Scenario 1: single player
            • Scenario 2: multiple players – one at a time
              • Kid's play – push and pull for a remote source
            • Scenario 1: solution
              • Going public – sharing over the Internet
          • Time for action – adding a remote origin using CLI mode
          • Time for action – resume your work from anywhere using CLI mode
          • Time for action – adding a remote origin using GUI mode
          • Time for action – resume your work from anywhere using GUI mode
            • Scenario 2: solution
              • Inviting users to your Bitbucket repository
              • Staying local – share over the intranet
          • Time for action – creating a bare repository in CLI mode
          • Time for action – creating a bare repository in GUI mode
          • Summary
          • Chapter 5: Be a Puppet Master – Learn Fancy Features to Control Git's Functions
            • Why learn such fancy features
              • Prerequisites
              • Shortlog
            • Time for action – getting acquainted with shortlog
            • Time for action – parameterizing shortlog
              • Log search – git log
            • Time for action – skip commit logs
            • Time for action – filter logs with date range
            • Time for action – searching for a word/character match
              • Clean
            • Time for action – emulate the mess
            • Time for action – clean up your mess with pattern match
            • Time for action – wipe out your mess completely, no exceptions
              • Tagging
            • Time for action – lightweight/unannotated tagging
            • Time for action – referencing tags
            • Time for action – annotated tagging
              • Simple exercise
          • Summary
            • Chapter 6: Unleash the Beast – Git on Text-based Files
              • Git for text-based files – an introduction
              • Multiplayer mode – multiple players at a time
                • Multiple players – one at a time
                • Multiple players – all hands on deck (many at a time)
                  • Sharing your repository
              • Time for action – getting ready to share
              • Time for action – distributed work force
              • Time for action – Bob's changes
              • Time for action – Lisa's changes
              • Time for action – Lisa examines the merge conflict
              • Time for action – Lisa resolves the merge conflict
                • GUI mode – get the repository's history graph
                • CLI mode – get the repository's history graph
            • Time for action – team members get sync with the central bare repo
            • Summary
              • Chapter 7: Parallel Dimensions – Branching with Git
                • What is branching
                • Why do you need a branch
                  • Naming conventions
                • When do you need a branch
                • Practice makes perfect: branching with Git
                  • Scenario
                • Time for action – creating branches in GUI mode
                • Time for action – creating branches in CLI mode
                • .config file – play with shortcuts
                • Time for action – adding simple aliases using CLI
                • Time for action – chain commands with a single alias using CLI
                • Time for action – adding complex aliases using GUI
                • Summary
                • Chapter 8: Behind the Scenes – Basis of Git Basics
                  • Two sides of Git: plumbing and porcelain
                  • Git init
                    • Hooks
                    • Info
                    • Config
                    • Description
                    • Objects
                      • Blob
                      • Trees
                      • Commits
                      • Tags
                    • HEAD
                    • Refs
                      • Bumper alert – directories inside heads and tags
                    • Index
                  • Git – a content tracking system
                  • Git add
                  • Git commit
                  • Git status
                  • Git clone
                  • Git remote
                  • Git branch
                  • Git tag
                  • Git fetch
                  • Git merge
                  • Git pull
                  • Git push
                  • Git checkout
                  • Relation across relations – Git packfiles
                    • Transferring packfiles
                  • Summary

                  Ravishankar Somasundaram

                  Ravishankar Somasundaram has over 6 years of techno-functional experience in providing solutions to clients across multiple sectors and domains. Being passionate about learning and teaching, he also strongly believes that the sole purpose of learning is to make our minds think in different perspectives, and he facilitates this in his training sessions through a blended learning approach mainly focused on how to "learn to learn". Junior Scientist: Apart from winning several prizes in science projects in his lower schoolings, he was awarded the title "Junior Scientist" by the committee consisting of people from the Indian Space Research Organization (ISRO) in an Inter school Science Fest for a model display on Evolution of Airplanes through Aerodynamics. This is one of his childhood achievements. His final year college project, aimed at eliminating the scenario of English alone being the medium of programming in all programming languages, which restricts people who don't know English from getting into the IT field and implementing their ideas, was selected and funded by MIT NRCFOSS and considered as a landmark. By early 2010 he was an official third-party developer of Moodle code, one of the seven people from India and the only one from Tamil Nadu. He shares his knowledge by helping people on the Moodle official forum and on IRC. He has also presented a paper in the 9th International Tamil Internet conference on Moodle: For Enhanced Learning which talks about leveraging Modle's capability to expand user base for one of the oldest language known to mankind - Tamil. Ravi currently leads Thirdware technology solutions efforts on "Next Generation Mobility" by playing with evolving technologies through its trends - predominantly focusing on Enterprise mobility (MEAP segment) as a Senior Technical Analyst heading the R&D division. Recently he represented his company at an international conference: "Yugma – Unleashing the Innovation Potential", with an idea that uses Artificial Intelligence to empower the next generation of enterprise mobile solutions.

                  Code Downloads

                  Download the code and support files for this book.


                  Submit Errata

                  Please let us know if you have found any errors not listed on this list by completing our errata submission form. Our editors will check them and add them to this list. Thank you.


                  Errata

                  - 1 submitted: last submission 17 May 2013

                  Errata type: Typo | Page number: 132

                  14. Open the participants.txt file and resolve the merge conflict as as learned in Chapter 6, Unleash the Beast – Git on Text-based Files, then add the changes, and finally commit them.

                  Should be : Open the participants.txt file and resolve the merge conflict as learned in Chapter 6, Unleash the Beast – Git on Text-based Files, then add the changes, and finally commit them.

                  Sample chapters

                  You can view our sample chapters and prefaces of this title on PacktLib or download sample chapters in PDF format.

                  Frequently bought together

                  Git: Version Control for Everyone +    Mastering Object-oriented Python =
                  50% Off
                  the second eBook
                  Price for both: €26.50

                  Buy both these recommended eBooks together and get 50% off the cheapest eBook.

                  What you will learn from this book

                  • Installing and configuring Git on your machine
                  • Basic concepts of Git to get started with versioning
                  • Sharing and collaboration of files with Git
                  • Additional tools which can come in handy
                  • Extended operations with Git on text based files

                  In Detail

                  Git – is free software which enables you to maintain different versions of single or multiple files present inside a directory(folder), and allows you to switch back and forth between them at any given point of time. It also allows multiple people to work on the same file collaboratively or in parallel, without being connected to a server or any other centralized system continuously.

                  This book is a step by step, practical guide, helping you learn the routine of version controlling all your content, every day.

                  If you are an average computer user who wants to be able to maintain multiple versions of files and folders, or to go back and forth in time with respect to the files content – look no further. The workflow explained in this book will benefit anyone, no matter what kind of text or documentation they work on.

                  This book will also benefit developers, administrators, analysts, architects and anyone else who wishes to perform simultaneous, collaborative work, or work in parallel on the same set of files. Git's advanced features are there to make your life easier.

                  Approach

                  The book follows a Blended Learning Approach (Learning through multiple modes: Readers learn theory to understand the concept and reinforce it by practically doing it). The new concepts are introduced using examples of common day to day activities for quick realization spread across topics.

                  Who this book is for

                  For the computer literate who want to leverage the advantage of maintaining multiple versions of files/folders to go back and forth in time with respect to the files content. For developers, administrators, analysts, architects and any others who want to perform a simultaneous, collaborative or work in parallel on the same set of files.

                  Code Download and Errata
                  Packt Anytime, Anywhere
                  Register Books
                  Print Upgrades
                  eBook Downloads
                  Video Support
                  Contact Us
                  Awards Voting Nominations Previous Winners
                  Judges Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software
                  Resources
                  Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software