وبلاگ بلیان

Pro Git (Expert's Voice in Software Development)

جلد کتاب Pro Git (Expert's Voice in Software Development)

معرفی کتاب «Pro Git (Expert's Voice in Software Development)» نوشتهٔ Scott Chacon, Ben Straub، منتشرشده توسط نشر Apress ; Distributed to the Book trade worldwide by Springer-Verlag در سال 2009. این کتاب در فرمت pdf، زبان انگلیسی ارائه شده است.

There are many good tutorials on basic usage of Git but this was the book that taught me the best practices and important workflows which can be employed while using Git. Some parts of the book seem pretty advanced for daily use but the author's grasp of the subject and more important than that his style of explaining most of the difficult concepts proved to be very handy for me. Previously I used CVS and then Subversion for some projects and I started to use Git only a few months ago and now I really ask myself why I didn't read the book as soon as I started to use Git. It would make things much easier for me. Shortly, I sincerely advise this book to any developer who plans to work with Git (it will be especially useful if you're developing an open source project or plan to contribute to a popular one). Contents at a Glance......Page 7 Contents......Page 9 About Version Control......Page 25 Local Version Control Systems......Page 26 Centralized Version Control Systems......Page 27 Distributed Version Control Systems......Page 28 Git Basics......Page 29 Snapshots, Not Differences......Page 30 Git Generally Only Adds Data......Page 31 The Three States......Page 32 Installing from Source......Page 33 Installing on Mac......Page 34 Your Identity......Page 35 Checking Your Settings......Page 36 Summary......Page 37 Initializing a Repository in an Existing Directory......Page 39 Recording Changes to the Repository......Page 40 Checking the Status of Your Files......Page 41 Staging Modified Files......Page 42 Viewing Your Staged and Unstaged Changes......Page 44 Committing Your Changes......Page 47 Removing Files......Page 48 Moving Files......Page 49 Viewing the Commit History......Page 50 Limiting Log Output......Page 54 Using a GUI to Visualize History......Page 55 Changing Your Last Commit......Page 56 Unstaging a Staged File......Page 57 Unmodifying a Modified File......Page 58 Showing Your Remotes......Page 59 Fetching and Pulling from Your Remotes......Page 60 Inspecting a Remote......Page 61 Tagging......Page 62 Creating Tags......Page 63 Verifying Tags......Page 65 Tagging Later......Page 66 Auto-Completion......Page 67 Git Aliases......Page 68 Summary......Page 69 What a Branch Is......Page 71 Basic Branching......Page 77 Basic Merging......Page 81 Basic Merge Conflicts......Page 82 Branch Management......Page 84 Branching Workflows......Page 85 Long-Running Branches......Page 86 Topic Branches......Page 87 Remote Branches......Page 88 Pushing......Page 92 Deleting Remote Branches......Page 93 The Basic Rebase......Page 94 More Interesting Rebases......Page 96 The Perils of Rebasing......Page 98 Summary......Page 101 The Protocols......Page 103 Local Protocol......Page 104 The Git Protocol......Page 105 The HTTP/S Protocol......Page 106 Getting Git on a Server......Page 107 Putting the Bare Repository on a Server......Page 108 Generating Your SSH Public Key......Page 109 Setting Up the Server......Page 110 Public Access......Page 112 GitWeb......Page 114 Gitosis......Page 115 Git Daemon......Page 119 Hosted Git......Page 120 Setting Up a User Account......Page 121 Creating a New Repository......Page 123 Importing from Subversion......Page 125 Adding Collaborators......Page 126 Your Project......Page 127 Forking Projects......Page 128 Summary......Page 129 Centralized Workflow......Page 131 Integration-Manager Workflow......Page 132 Dictator and Lieutenants Workflow......Page 133 Contributing to a Project......Page 134 Commit Guidelines......Page 135 Private Small Team......Page 136 Private Managed Team......Page 142 Public Small Project......Page 148 Public Large Project......Page 151 Summary......Page 153 Applying Patches from E-mail......Page 154 Checking Out Remote Branches......Page 157 Determining What Is Introduced......Page 158 Integrating Contributed Work......Page 159 Tagging Your Releases......Page 164 Preparing a Release......Page 165 Summary......Page 166 Single Revisions......Page 167 Commit Ranges......Page 171 Interactive Staging......Page 174 Stashing......Page 177 Stashing Your Work......Page 178 Changing the Last Commit......Page 180 Changing Multiple Commit Messages......Page 181 Reordering Commits......Page 182 Squashing a Commit......Page 183 The Nuclear Option: filter-branch......Page 184 File Annotation......Page 186 Binary Search......Page 187 Starting with Submodules......Page 189 Cloning a Project with Submodules......Page 191 Issues with Submodules......Page 193 Subtree Merging......Page 195 Summary......Page 197 Git Configuration......Page 199 Basic Client Configuration......Page 200 Colors in Git......Page 202 External Merge and Diff Tools......Page 203 Formatting and Whitespace......Page 205 Server Configuration......Page 207 Binary Files......Page 208 Keyword Expansion......Page 210 Exporting Your Repository......Page 213 Installing a Hook......Page 214 Client-Side Hooks......Page 215 Server-Side Hooks......Page 216 Server-Side Hook......Page 217 Client-Side Hooks......Page 223 Summary......Page 226 git svn......Page 227 Getting Started......Page 228 Committing Back to Subversion......Page 230 Pulling in New Changes......Page 231 Git Branching Issues......Page 232 Subversion Branching......Page 233 Subversion Commands......Page 234 Migrating to Git......Page 236 Importing......Page 237 Perforce......Page 238 A Custom Importer......Page 240 Summary......Page 245 Plumbing and Porcelain......Page 247 Git Objects......Page 248 Tree Objects......Page 250 Commit Objects......Page 252 Object Storage......Page 255 Git References......Page 256 The HEAD......Page 257 Tags......Page 258 Packfiles......Page 259 The Refspec......Page 262 Pushing Refspecs......Page 263 The Dumb Protocol......Page 264 The Smart Protocol......Page 266 Downloading Data......Page 267 Maintenance......Page 268 Data Recovery......Page 269 Removing Objects......Page 271 Summary......Page 274 License......Page 275 Creative Commons Notice......Page 281 Index......Page 283

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 you’ll 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 this book is for

This book is for all open source developers: you are bound to encounter Git somewhere in the course of your working life. Proprietary software developers will appreciate Git’s enormous scalability, since it is used for the Linux project, which comprises thousands of developers and testers.

Table of Contents

  1. Getting Started
  2. Git Basics
  3. Git Branching
  4. Git on the Server
  5. Distributed Git
  6. Git Tools
  7. Customizing Git
  8. Git and Other Systems
  9. Git Internals
Annotation 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 this book is for This book is for all open source developers: you are bound to encounter Git 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. Table of Contents Getting Started Git Basics Git Branching Git on the Server Distributed Git Git Tools Customizing Git Git and Other Systems Git Internals *Pro Git* is your fully-updated guide to Git and its usage in the modern world. Git has come a long way since it was first developed by Linus Torvalds for Linux kernel development. It has taken the open source world by storm since its inception in 2005, and this book teaches you how to use it like a pro. Effective and well-implemented version control is a necessity for successful web projects, whether large or small. With this book you’ll learn how to master the world of distributed version workflow, use the distributed features of Git to the full, and extend Git to meet your every need. "Pro Git is written to help the professional developer learn the Git distributed source control tool from front to back. In this book, you'll learn why Git is different and powerful, how to use it from beginning usage to advanced features, how to transition to it from an existing system, and how it works under the covers."--Publisher's description "Programmers or project leaders will learn to use Git, the version control system developed by Linus Torvalds for Linux kernel development. You'll discover the world of distributed version control and learn how to build a Git development workflow, with expert guidance from Scott Chacon"--Resource description page Foreword Getting Started Git Basics Git Branching Git on the Server Distributed Git Git Tools Customizing Git Git and Other Systems Git Internals Appendix Index
دانلود کتاب Pro Git (Expert's Voice in Software Development)