Nothing Special   »   [go: up one dir, main page]

skip to main content
Skip header Section
Pro GitSeptember 2009
Publisher:
  • Apress
  • 901 Grayson Street Suite 204 Berkely, CA
  • United States
ISBN:978-1-4302-1833-3
Published:12 September 2009
Pages:
288
Skip Bibliometrics Section
Reflects downloads up to 15 Feb 2025Bibliometrics
Skip Abstract Section
Abstract

Git is the version control system developed by Linus Torvalds for Linux kernel development. It took the open source world by storm since its inception in 2005, and is used by small development shops and giants like Google, Red Hat, and IBM, and of course many open source projects. A book by Git experts to turn you into a Git expert Introduces the world of distributed version control Shows how to build a Git development workflow What youll learn Use Git as a programmer or a project leader. Become a fluent Git user. Use distributed features of Git to the full. Acquire the ability to insert Git in the development workflow. Migrate programming projects from other SCMs to Git. Learn how to extend Git. Who is this book for? This book is for all open source developers: you are bound to encounter it somewhere in the course of your working life. Proprietary software developers will appreciate Gits enormous scalability, since it is used for the Linux project, which comprises thousands of developers and testers. About the Apress Pro Series The Apress Pro series books are practical, professional tutorials to keep you on and moving up the professional ladder. You have gotten the job, now you need to hone your skills in these tough competitive times. The Apress Pro series expands your skills and expertise in exactly the areas you need. Master the content of a Pro book, and you will always be able to get the job done in a professional development project. Written by experts in their field, Pro series books from Apress give you the hardwon solutions to problems you will face in your professional programming career.

Cited By

  1. Schwägerl F and Westfechtel B (2019). Integrated revision and variation control for evolving model-driven software product lines, Software and Systems Modeling (SoSyM), 18:6, (3373-3420), Online publication date: 1-Dec-2019.
  2. Sawant A, Robbes R and Bacchelli A (2018). On the reaction to deprecation of clients of 4 + 1 popular Java APIs and the JDK, Empirical Software Engineering, 23:4, (2158-2197), Online publication date: 1-Aug-2018.
  3. ACM
    Cesario C and Murta L Topology Awareness for Distributed Version Control Systems Proceedings of the XXX Brazilian Symposium on Software Engineering, (143-152)
  4. ACM
    Vassena M Generic Diff3 for algebraic datatypes Proceedings of the 1st International Workshop on Type-Driven Development, (62-71)
  5. ACM
    Schwägerl F and Westfechtel B SuperMod: tool support for collaborative filtered model-driven software product line engineering Proceedings of the 31st IEEE/ACM International Conference on Automated Software Engineering, (822-827)
  6. LaPre J, Gonsiorowski E, Carothers C, Jenkins J, Carns P and Ross R Time warp state restoration via delta encoding Proceedings of the 2015 Winter Simulation Conference, (3025-3036)
  7. ACM
    Salvati G, Santoni C, Tibaldo V and Pellacini F (2015). MeshHisto, ACM Transactions on Graphics, 34:6, (1-10), Online publication date: 4-Nov-2015.
  8. Lee Y, Marinov D and Johnson R Tempura Proceedings of the 37th International Conference on Software Engineering - Volume 1, (212-222)
  9. Solheim J (2015). Web apps in the computer science curriculum, Journal of Computing Sciences in Colleges, 30:5, (126-133), Online publication date: 1-May-2015.
  10. ACM
    Tate J and Clancy T Secure and Tamper Proof Code Management Proceedings of the 2014 Workshop on Cyber Security Analytics, Intelligence and Automation, (19-24)
  11. ACM
    Lorenz D and Rosenan B Versionable, Branchable, and Mergeable Application State Proceedings of the 2014 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming & Software, (29-42)
  12. ACM
    Swierstra W and Löh A The Semantics of Version Control Proceedings of the 2014 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming & Software, (43-54)
  13. ACM
    Gousios G, Pinzger M and Deursen A An exploratory study of the pull-based software development model Proceedings of the 36th International Conference on Software Engineering, (345-355)
  14. ACM
    Chandra R, Kim T and Zeldovich N Asynchronous intrusion recovery for interconnected web services Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles, (213-227)
  15. ACM
    Kaminsky M and Dahlin M (2013). Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles, 10.1145/2517349, Online publication date: 3-Nov-2013.
  16. ACM
    Perez De Rosso S and Jackson D What's wrong with git? Proceedings of the 2013 ACM international symposium on New ideas, new paradigms, and reflections on programming & software, (37-52)
  17. Neves V, Braganholo V and Murta L Implicit provenance gathering through configuration management Proceedings of the 5th International Workshop on Software Engineering for Computational Science and Engineering, (92-95)
  18. ACM
    Lawrance J, Jung S and Wiseman C Git on the cloud in the classroom Proceeding of the 44th ACM technical symposium on Computer science education, (639-644)
  19. Shihab E, Kamei Y and Bhattacharya P Mining challenge 2012 Proceedings of the 9th IEEE Working Conference on Mining Software Repositories, (112-115)
  20. Rodríguez-Bustos C and Aponte J How distributed version control systems impact open source software projects Proceedings of the 9th IEEE Working Conference on Mining Software Repositories, (36-39)
  21. ACM
    Hata H, Mizuno O and Kikuno T Historage Proceedings of the 12th International Workshop on Principles of Software Evolution and the 7th annual ERCIM Workshop on Software Evolution, (96-100)
Contributors

Reviews

Mike S. Joy

Software development usually involves a team of programmers who may be distributed over several locations and work on multiple versions of the software. Although such teams clearly need a version control system (VCS) to ensure code consistency, VCSs suffer from problems related to scalability, usability, and security. This book is a tutorial on Git, an open-source tool that has been in development since 2005, learning lessons from earlier VCSs. The use of Git is widespread in the Linux development community. It belongs to the new generation of VCSs, distinguished by their ability to support distributed code repositories (as opposed to the central repository model used in the past). The first chapter provides a brief history of VCSs in general and Git in particular, and clarifies the differences between Git and competing products. It presents installation instructions for Linux, Windows, and Mac OS, with very basic configuration instructions. The next two chapters are perhaps the most important in the book, since they explain the basic concepts necessary to use the tool, including the file status lifecycle, file committal, and tagging (chapter 2), and the different types of branching and merging (chapter 3). The concepts are illustrated with simple examples so that readers can work on their own computers; appropriate figures are used to clarify the examples. Although Chacon mentions graphical user interfaces (GUIs) for Git, all of the examples use a terminal interface, but this is entirely appropriate. By the end of these chapters, readers will be able to work with Git on their local systems. A major reason for using VCSs is user collaboration. This is explored in the next two chapters, in which remote management of Git repositories is examined from several angles. Security-particularly, user authentication-is a major focus of chapter 4, together with setting up repositories for collaborative access. Chapter 5 considers how workflows can be organized so that projects of different sizes can be managed effectively. This is important for two reasons: the decentralized nature of Git allows for different patterns of use, and different contributors might require different levels of access to the repositories. Chapter 6 considers Git's other functions, including interactive versions of the basic Git commands, commands for changing the recent commit history, debugging tools, and the ability to manage hierarchies of projects. This is supplemented in chapter 7 by a discussion of methods for customizing Git. Chapter 8 explains how Git can import projects from other VCS tools, such as Subversion and Perforce, and the final chapter explains the structure of the files used by Git to store data and the transport protocols used to move data between users and repositories. The appendix presents the book's copyright, a Creative Commons license. The author's site (http://progit.org/) includes a copy of the book, a useful blog with many more examples, and links to other Git-related resources. This is a straightforward and clearly written introduction to a useful VCS tool. It is not only an effective tutorial, but also a useful reference. Online Computing Reviews Service

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.

Please enable JavaScript to view thecomments powered by Disqus.

Recommendations