forked from progit/progit2
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathOUTLINE.txt
318 lines (308 loc) · 7.37 KB
/
OUTLINE.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
1. Getting Started
1.1 About Version Control
* Local Version Control Systems
* Centralized Version Control Systems
* Distributed Version Control Systems
1.2 A Short History of Git
1.3 Git Basics
* Snapshots, Not Differences
* Nearly Every Operation Is Local
* Git Has Integrity
* Git Generally Only Adds Data
* The Three states
1.4 Installing Git
* Installing From Source
* Installing On Linux (yum, apt-get)
* Installing On Mac (binary installer, MacPorts)
* Installing On Windows (msysgit installer)
1.5 First-Time Git Setup
* Your Identity
* Your Editor
* Your Diff Tool
* Checking Your Settings
* Credential Caching
1.6 Getting Help
1.7 Summary
2. Git Basics
2.1 Getting a Git Repository
* Initializing a Repository in an Existing Directory
* Cloning an Existing Repository
2.2 Recording Changes to the Repository
* Checking the Status of Your Files
* Tracking New Files
* Staging Modified Files
* Ignoring Files
* Viewing Your Staged and Unstaged Changes
* Committing Your Changes
* Skipping the Staging Area
* Removing Files
* Moving Files
2.3 Viewing the Commit History
* Limiting Log Output
* Using a GUI to Visualize History
2.4 Undoing Things
* Changing Your Last Commit
* Unstaging a Staged File
* Unmodifying a Modified File
* Undoing All Changes (clean)
2.5 Working with Remotes
* Showing Your Remotes
* Adding Remote Repositories
* Fetching and Pulling from Your Remotes
* Pushing to Your Remotes
* Inspecting a Remote
* Removing and Renaming Remotes
2.6 Tagging
* Listing Your Tags
* Creating Tags
* Annotated Tags
* Signed Tags
* Lightweight Tags
* Verifying Tags
* Tagging Later
* Sharing Tags
2.7 Tips and Tricks
* Auto-Completion
* Git Aliases
2.8 Summary
3. Git Branching
3.1 What a Branch Is
3.2 Basic Branching and Merging
* Basic Branching
* Basic Merging
* Basic Merge Conflicts
* Undoing Merges
3.3 Branch Management
3.4 Branching Workflows
* Long-Running Branches
* Topic Branches
3.5 Remote Branches
* Pushing
* Tracking / Upstream Branches
* Deleting Remote Branches
3.6 Rebasing
* The Basic Rebase
* More Interesting Rebases
* The Perils of Rebasing
* Rebase vs. Merge
3.7 Summary
4. Git on the Server
4.1 The Protocols
* Local Protocol
* The SSH Protocol
* The Git Protocol
* The HTTP/S Protocol
4.2 Getting Git on a Server
* Putting the Bare Repository on a Server
* Small Setups
* SSH Access
4.3 Generating Your SSH Public Key
4.4 Setting Up the Server
4.5 Public Access
4.6 GitWeb
4.7 Git Daemon
4.X GitLab
4.X Gerrit
4.10 Other Hosting Options (bitbucket, stash, kiln, etc.)
4.11 Summary
5. Distributed Git
5.1 Distributed Workflows
* Centralized Workflow
* Integration-Manager Workflow
* Dictator and Lieutenants Workflow
5.2 Contributing to a Project
* Commit Guidelines
* Private Small Team
* Private Managed Team
* Public Small Project
* Public Large Project (request-pull)
* Summary
5.3 Maintaining a Project
* Working in Topic Branches
* Applying Patches from E-mail
* Applying a Patch with apply
* Applying a Patch with am
* Checking Out Remote Branches
* Determining What Is Introduced
* Integrating Contributed Work
* Merging Workflows
* Large-Merging Workflows
* Rebasing and Cherry Picking Workflows
* Tagging Your Releases
* Generating a Build Number
* Preparing a Release
* The Shortlog
5.4 Summary
X. GitHub
X.X Setting Up a User Account
X.X Projects
* Creating a repository
* Adding collaborators
* Your Project
* Forking
X.X GitHub Flow
X.X Discussions
* PR/issue/discussion
* Markdown
* Notifications
* Email
* Mentions (issue/person/team)
X.X Organizations
* Teams
X.X Tips & Tricks
* Importing
* Subversion Interop
* hub or gh
* pull-request refs
* keyboard shortcuts
* ignore whitespace
* rev-parse specs
* commits by author
* .diff and .patch
* Line linking
* Search/Command Bar
X.X The API
X.X Summary
6. Git Tools
6.1 Revision Selection
* Single Revisions
* Short SHA
* A SHORT NOTE ABOUT SHA-1
* Branch References
* RefLog Shortnames
* Ancestry References
* Commit Ranges
* Double Dot
* Multiple Points
* Triple Dot
6.3 Stashing and Cleaning
* Stashing Your Work
* Un-applying a Stash
* Creating a Branch from a Stash
* Git Clean
6.X Searching (git grep)
6.2 Interactive Staging
* Staging and Unstaging Files
* Staging Patches
6.X Git Reset
* The Three Trees of Git
* Reset with a path
* Reset vs Checkout
6.4 Rewriting History
* Changing the Last Commit
* Changing Multiple Commit Messages
* Reordering Commits
* Squashing a Commit
* Splitting a Commit
* The Nuclear Option: filter-branch
* Removing a File from Every Commit
* Making a Subdirectory the New Root
* Changing E-Mail Addresses Globally
6.5 Debugging with Git
* File Annotation
* Binary Search
6.6 Submodules
* Starting with Submodules
* Cloning a Project with Submodules
* Superprojects
* Issues with Submodules
6.7 Subtree Merging
6.X Notes
6.X Bundle
6.X Rerere
9.X History Hacks
* Grafts (maybe? this is deprecated)
* Replace
* Shallow
6.8 Summary
7. Customizing Git
7.1 Git Configuration
* Basic Client Configuration
* Colors in Git
* External Merge and Diff Tools
* Formatting and Whitespace
* Server Configuration
7.2 Git Attributes
* Binary Files
* Keyword Expansion
* Exporting Your Repository
* Merge Strategies
7.3 Git Hooks
* Installing a Hook
* Client-Side Hooks
* Server-Side Hooks
7.4 An Example Git-Enforced Policy
* Server-Side Hook
* Client-Side Hooks
7.5 Summary
8. Git and Other Systems
8.1 Git and Subversion
* git svn
* Setting Up
* Getting Started
* Committing Back to Subversion
* Pulling in New Changes
* Git Branching Issues
* Subversion Branching
* Creating a New SVN Branch
* Switching Active Branches
* Subversion Commands
* SVN Style History
* SVN Annotation
* SVN Server Information
* Ignoring What Subversion Ignores
* Git-Svn Summary
8.X Git and Mercurial
8.X Git and Perforce
8.X Git and TFS
8.2 Migrating to Git
* Importing
* Subversion
* Mercurial
* Perforce
* TFS
* A Custom Importer
8.X A Custom Credential Cache
8.3 Summary
X. Git in Other Environments
X.X Graphical Interfaces
* gitk & git gui
* GitHub for Windows/Mac
* (Others)
X.X Git in Visual Studio
X.X Git in Eclipse
X.X Git in Bash
X.X Git in Zsh
X.X Git in Powershell
X.X Git in Your Application
* libgit2
* libgit2sharp
* Objective-Git
* Rugged
* Pygit2
* (others)
9. Git Internals
9.1 Plumbing and Porcelain
9.2 Git Objects
* Tree Objects
* Commit Objects
* Object Storage
9.3 Git References
* The HEAD
* Tags
* Remotes
9.4 Packfiles
9.5 The Refspec
* Pushing Refspecs
* Deleting References
9.6 Transfer Protocols
* The Dumb Protocol
* The Smart Protocol (include HTTP/S)
* Uploading Data
* Downloading Data
9.7 Maintenance and Data Recovery
* Maintenance
* Data Recovery
* Removing Objects
9.X Environment Variables
9.8 Summary