Muutke küpsiste eelistusi

E-raamat: Professional Git [Wiley Online]

  • Formaat: 480 pages
  • Ilmumisaeg: 03-Jan-2017
  • Kirjastus: Wrox Press
  • ISBN-10: 111928502X
  • ISBN-13: 9781119285021
Teised raamatud teemal:
  • Wiley Online
  • Hind: 52,87 €*
  • * hind, mis tagab piiramatu üheaegsete kasutajate arvuga ligipääsu piiramatuks ajaks
  • Formaat: 480 pages
  • Ilmumisaeg: 03-Jan-2017
  • Kirjastus: Wrox Press
  • ISBN-10: 111928502X
  • ISBN-13: 9781119285021
Teised raamatud teemal:
Leverage the power of Git to smooth out the development cycle Professional Git takes a professional approach to learning this massively popular software development tool, and provides an up-to-date guide for new users. More than just a development manual, this book helps you get into the Git mindsetextensive discussion of corollaries to traditional systems as well as considerations unique to Git help you draw upon existing skills while looking outand planning forthe differences. Connected labs and exercises are interspersed at key points to reinforce important concepts and deepen your understanding, and a focus on the practical goes beyond technical tutorials to help you integrate the Git model into your real-world workflow.



Git greatly simplifies the software development cycle, enabling users to create, use, and switch between versions as easily as you switch between files. This book shows you how to harness that power and flexibility to streamline your development cycle.





Understand the basic Git model and overall workflow Learn the Git versions of common source management concepts and commands Track changes, work with branches, and take advantage of Git's full functionality Avoid trip-ups and missteps common to new users

Git works with the most popular software development tools and is used by almost all of the major technology companies. More than 40 percent of software developers use it as their primary source control tool, and that number continues to grow; the ability to work effectively with Git is rapidly approaching must-have status, and Professional Git is the comprehensive guide you need to get up to speed quickly.
Introduction xxiii
Part I: Understanding Git Concepts
Chapter 1 What Is Git?
3(16)
History Of Git
4(1)
Industry-Standard Tooling
4(1)
The Git Ecosystem
5(6)
Core Git
5(1)
Git-Hosting Sites
6(1)
Self-Hosting Packages
7(1)
Ease-Of-Use Packages
8(2)
Plug-Ins
10(1)
Tools That Incorporate Git
10(1)
Git Libraries
10(1)
Git's Advantages And Challenges
11(7)
The Advantages
11(3)
The Challenges
14(4)
Summary
18(1)
Chapter 2 Key Concepts
19(12)
Design Concepts: User-Facing
19(3)
Centralized Model
20(1)
Distributed Model
20(2)
Design Concepts: Internal
22(3)
Delta Storage
22(1)
Snapshot Storage
23(1)
Git's Storage Requirements
23(2)
Repository Design Considerations
25(4)
Repository Scope
25(2)
File Scope
27(2)
Summary
29(2)
Chapter 3 The Git Promotion Model
31(12)
The Levels Of Git
31(10)
Dev-Test-Prod And Git
32(7)
The Core Git Commands For Moving Content
39(2)
Summary
41(2)
About Connected Lab 1: Installing Git
42(1)
Connected Lab 1 Installing Git
43(6)
Installing Git For Windows
43(1)
Steps
43(3)
Installing Git On Mac OS X
46(1)
Installing Git On Linux
46(3)
Part II: Using Git
Chapter 4 Configuration And Setup
49(24)
Executing Commands in Git
49(6)
Operand Types
50(1)
Porcelain versus Plumbing Commands
51(2)
Specifying Arguments
53(1)
Auto-complete
54(1)
Configuring Git
55(9)
Telling Git Who You Are
56(1)
Configuration Scope
57(3)
Default Editor
60(1)
End of Line Settings
61(2)
Aliases
63(1)
Windows Filesystem Cache
64(1)
Initializing a Repository
64(2)
Git Init
64(1)
Git Clone
65(1)
Advanced Topics
66(5)
Git Init Demystified
67(1)
Looking Further into a Git Repository
67(2)
Mapping Config Commands to Configuration Files
69(1)
Creating Parameterized Aliases
70(1)
Summary
71(2)
Chapter 5 Getting Productive
73(26)
Getting Help
73(3)
The Multiple Repositories Model
76(1)
Adding Content to Track—Add
77(9)
Staging Scope
78(8)
Finalizing Changes—Commit
86(2)
Prerequisites
87(1)
Commit Scope
88(1)
Putting It All Together
88(6)
Amending Commits
88(3)
Results of a Commit
91(3)
Advanced Topics
94(3)
Using the Verbose Option
95(1)
The Full Commit Message Experience
95(1)
Autocorrect and Auto Execute
96(1)
Summary
97(2)
About Connected Lab 2: Creating and Exploring a Git Repository and Managing Content
97(2)
Connected Lab 2 Creating And Exploring A Git Repository And Managing Content
99(6)
Prerequisites
99(1)
Optional Advanced Deep-Dive into the Repository Structure
99(1)
Steps
99(6)
Chapter 6 Tracking Changes
105(22)
Git Status
105(6)
Workflow Example with Status
106(4)
Status Command Short Form
110(1)
Git Diff
111(14)
Important Symbolic Names in Git
112(1)
How to Think about Git's Approach to Diffing
112(3)
Diff Names Only
115(1)
Word-diff
116(1)
Ignoring Non-critical Changes
116(2)
Diffing Two Commits
118(3)
Visual Diffing
121(3)
Other Diff Tricks
124(1)
Summary
125(2)
About Connected Lab 3: Tracking Content through the File Status Life Cycle
125(2)
Connected Lab 3 Tracking Content Through The File Status Life Cycle
127(4)
Prerequisites
127(1)
Steps
127(4)
Chapter 7 Working With Changes Over Time And Using Tags
131(24)
The Log Command
132(6)
Common Display and Filtering Options
132(1)
Time-Limiting Options
133(1)
History by Files and Paths
134(1)
Log Output Format
135(1)
Searching History
136(2)
Git Blame
138(2)
Seeing History Visually
140(1)
Tags
141(4)
Seeing Tag Details
142(1)
Modifying Tags
143(1)
Quick Tagging Example
144(1)
Undoing Changes in History
145(6)
Reset-Rolling Back Changes
145(1)
Completely Resetting the Local Environment
146(1)
Revert—Canceling Out Changes
147(4)
Advanced Topics
151(3)
Signing Commits and Tags
151(2)
Reflogs
153(1)
Summary
154(1)
About Connected Lab 4: Using Git History, Tags, and Aliases
154(1)
Connected Lab 4 Using Git History, Aliases, And Tags
155(4)
Prerequisites
155(1)
Steps
155(4)
Chapter 8 Working With Local Branches
159(30)
What Is a Branch?
159(21)
Example from Another Source Management System
160(1)
The Git Model of Branches
160(2)
Creating a Branch
162(1)
Checking Out a Branch
163(1)
Adding Content to a Branch
164(1)
One Working Directory—Many Branches
164(4)
Getting Information about Branches
168(1)
Deleting or Renaming a Branch
169(3)
Developing with Branches
172(8)
Advanced Topics
180(7)
Checking Out Non-branch Commits
181(5)
Checking Out Individual Files
186(1)
Summary
187(2)
About Connected Lab 5: Working with Branches
188(1)
Connected Lab 5 Working With Branches
189(4)
Prerequisites
189(1)
Steps
189(4)
Chapter 9 Merging Content
193(50)
The Basics of Merging
194(16)
The Merge Command
194(1)
Preparing for a Merge
194(1)
Types of Merges
195(4)
Rebasing-Merging with History
199(4)
Cherry-Picking
203(2)
Differences between Cherry-Pick and Rebase
205(1)
Merge Operations
206(4)
Dealing with Conflicts
210(13)
Merging Is a State
210(1)
Error Messages for Conflicts
211(1)
Aborting the Operation
212(1)
Dealing with Conflicts—the Workflow
213(4)
Resolution Options and Strategies
217(6)
Visual Merging
223(4)
Selecting a Merging Tool
226(1)
Making Merge Tools Available to Git
226(1)
Advanced Topics
227(14)
Alternative Style for Conflict Markers
227(2)
Advanced Rebasing Scenario
229(5)
Interactive Rebasing
234(7)
Summary
241(2)
About Connected Lab 6: Practicing with Merging
242(1)
Connected Lab 6 Practicing With Merging
243(2)
Prerequisites
243(1)
Steps
243(2)
Chapter 10 Supporting Files In Git
245(18)
The Git Attributes File
246(10)
What Can You Do with This File?
246(1)
The Scope of Git Attributes
246(2)
The File Format
248(1)
Common Use Cases
249(7)
Getting Attribute Information for Files
256(1)
The Git Ignore File
256(5)
The Scope of Git Ignore
257(1)
The File Format
258(2)
Getting Ignore Information for Files
260(1)
Summary
261(2)
Chapter 11 Doing More With Git
263(54)
Modifying the Layout of Files and Directories in Your Local Environment
263(9)
stash
264(6)
Staging Commands
270(1)
mv
271(1)
rm
272(1)
Commands for Searching
272(6)
grep
273(2)
Git Log Searches
275(3)
Working with Patches and Archives for Changes
278(7)
archive
278(1)
bundle
279(1)
Sharing Patches through E-mail
280(1)
apply
281(1)
am
282(1)
Mailing Patch Files
283(2)
Commands for Cleaning Up
285(5)
clean
286(2)
gc
288(1)
notes
288(2)
Advanced Topics
290(24)
filter-branch
291(1)
rev-list
291(7)
bisect
298(8)
rerere
306(8)
Summary
314(3)
About Connected Lab 7: Deleting, Renaming, and Stashing
315(2)
Connected Lab 7 Deleting, Renaming, And Stashing
317(4)
Prerequisites
317(1)
Steps
317(4)
Chapter 12 Understanding Remotes—branches And Operations
321(32)
Remotes
322(30)
Remote Access Protocols
324(2)
The Remote Command
326(2)
How Git Interacts with the Remote Environment
328(1)
Remote Tracking Branches
328(2)
Git Clone
330(3)
Viewing Information about Remote Branches
333(5)
Push
338(8)
Fetch
346(3)
Pull
349(3)
Summary
352(1)
About Connected Lab 8: Setting Up a GitHub Account and Cloning a Repository
352(1)
Connected Lab 8 Setting Up A Github Account And Cloning A Repository
353(2)
Prerequisites
353(1)
Steps
353(2)
Chapter 13 Understanding Remotes—workflows For Changes
355(22)
The Basic Conflict and Merge Resolution Workflow in Git
356(12)
How the Remote Side Handles Conflicts
356(12)
Hosted Repositories
368(7)
Models for Collaboration with Git
369(5)
Putting It All Together
374(1)
Summary
375(2)
About Connected Lab 9: Using the Overall Workflow with a Remote Repository
375(2)
Connected Lab 9 Using The Overall Workflow With A Remote Repository
377(4)
Prerequisites
377(1)
Steps
377(4)
Chapter 14 Working With Trees And Modules In Git
381(32)
Worktrees
381(5)
Adding a Worktree
382(3)
Listing Out the Working Trees
385(1)
Pruning a Worktree
385(1)
Submodules
386(19)
Understanding How Submodules Work
388(1)
Adding a Submodule
388(1)
Determining Submodule Status
389(4)
Processing Multiple Submodules
393(1)
Updating Submodules from Their Remotes
394(2)
Viewing Submodule Differences
396(1)
Superproject versus Submodules
397(2)
The Problem with Submodules
399(1)
Updating the Submodule References
399(2)
Updating Submodules When the Superproject Is Updated
401(1)
Pushing Changes from Submodules
402(2)
Submodules and Merging
404(1)
Unregistering a Submodule
404(1)
Subtrees
405(6)
Adding a Project as a Subtree
407(2)
Updating a Subtree
409(1)
Using the Subtree Split Functionality
410(1)
Creating a New Project from the Split Content
410(1)
Subtree Push
411(1)
Summary
411(1)
About Connected Labs 10-12
411(2)
About Connected Lab 10: Working with Worktrees
412(1)
About Connected Lab 11: Working with Submodules
412(1)
About Connected Lab 12: Working with Subtrees
412(1)
Connected Lab 10 Working With Worktrees
413(2)
Prerequisites
413(1)
Steps
413(2)
Connected Lab 11 Working With Submodules
415(4)
Prerequisites
415(1)
Steps
415(4)
Connected Lab 12 Working With Subtrees
419(4)
Prerequisites
419(1)
Steps
419(4)
Chapter 15 Extending Git Functionality With Git Hooks
423(20)
Installing Hooks
424(1)
Updating Hooks
425(1)
Common Hook Attributes
425(2)
Hook Domain
425(1)
Return Code To Control Workflow
426(1)
Working Directory Access
426(1)
Environment Variables
427(1)
Hook Descriptions
427(11)
Applypatch-Msg
427(1)
Pre-Applypatch
427(1)
Post-Applypatch
428(1)
Pre-Commit
428(1)
Prepare-Commit-Msg
429(2)
Commit-Message
431(1)
Post-Commit
432(1)
Pre-Rebase
433(1)
Post-Checkout
434(1)
Post-Merge
434(1)
Pre-Push
434(1)
Pre-Receive
435(1)
Update
436(1)
Post-Receive
436(1)
Post-Update
437(1)
Other Hooks
438(3)
Push-To-Checkout
438(1)
Pre-Auto-Gc
438(1)
Post-Rewrite
438(1)
Hooks Quick Reference
439(2)
Summary
441(2)
Index 443
About the author

Brent Laster is a Senior Manager in Research & Development at SAS in Cary, North Carolina and an international trainer and presenter on open-source technologies such as Git, Jenkins, Gerrit, Gradle, and Docker. He develops and conducts practical, hands-on corporate and conference presentations. In addition, Laster has trained hundreds of people in using and understanding Git in both basic usage and advanced functionality.

Visit us at wrox.com where you have access to free code samples, Programmer to Programmer forums, and discussions on the latest happenings in the industry from around the world.