Skip to content

Update the outline #1

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 9 commits into from
Jan 22, 2014
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
95 changes: 82 additions & 13 deletions OUTLINE.txt
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
* Your Editor
* Your Diff Tool
* Checking Your Settings
* Credential Caching
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

1.6 Getting Help
1.7 Summary

Expand All @@ -41,9 +42,18 @@
* Limiting Log Output
* Using a GUI to Visualize History
2.4 Undoing Things
* Reset Demystified
* The Three Trees
* The Workflow
* The Role of Reset
* Reset With a Path
* A Fun Example
* Check It Out
* Summary
* 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
Expand Down Expand Up @@ -71,6 +81,7 @@
* Basic Branching
* Basic Merging
* Basic Merge Conflicts
* Undoing Merges
3.3 Branch Management
3.4 Branching Workflows
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I had a thought about this section. In the github-alm book there was a section on branching workflows, and the TOC ended up looking like this:

  • Branching models
    • 1 branch: commit to trunk
    • 2 branches: master & features (GitHub flow)
    • 3 branches: master, dev, features
    • 4+ branches: Usually for specific reason (e.g. Git Flow), or out of control

I kind of like the math-ness of how it came out, and how it shows that mo' branches = mo' problems. This also has kind of a narrative about a project's evolution. Do you think it could work here?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, it's not really '2 branches' though. It's 1, 1+N, 2+N, etc. I think 1, 1+N and >1+N are the three interesting narratives, where 1 is master only, 1+N is GitHub flow-like and >1+N is the concept of having several long running named branches and several short lived feature branches, git-flow being an example.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So do you think this:

  • master only
  • master + feature branches
  • master + dev + feature branches
  • git-flow/release branches/other things that are insane

… would be a better way to structure this? I'm kind of liking that, and it's more-or-less a superset of what's there in the first edition.

* Long-Running Branches
Expand All @@ -83,6 +94,7 @@
* The Basic Rebase
* More Interesting Rebases
* The Perils of Rebasing
* Rebase vs. Merge
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

3.7 Summary

4. Git on the Server
Expand All @@ -99,7 +111,7 @@
4.4 Setting Up the Server
4.5 Public Access
4.6 GitWeb
4.7 Gitosis
4.9 Git Daemon
4.8 Gitolite
* Installing
* Customising the Install
Expand All @@ -109,16 +121,9 @@
* Personal Branches
* "Wildcard" repositories
* Other Features
4.9 Git Daemon
4.10 Hosted Git
* GitHub
* Setting Up a User Account
* Creating a New Repository
* Importing from Subversion
* Adding Collaborators
* Your Project
* Forking Projects
* GitHub Summary
4.X GitLab
4.X Gerrit
4.10 Other Hosting Options (bitbucket, stash, kiln, etc.)
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added Gerrit here, some people think it's useful. Is there anything else we should cover in this section?

4.11 Summary

5. Distributed Git
Expand All @@ -131,7 +136,7 @@
* Private Small Team
* Private Managed Team
* Public Small Project
* Public Large Project
* Public Large Project (request-pull)
* Summary
5.3 Maintaining a Project
* Working in Topic Branches
Expand All @@ -150,6 +155,37 @@
* 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
Expand All @@ -169,6 +205,7 @@
* Stashing Your Work
* Un-applying a Stash
* Creating a Branch from a Stash
6.X Searching (git grep)
6.4 Rewriting History
* Changing the Last Commit
* Changing Multiple Commit Messages
Expand All @@ -188,6 +225,13 @@
* 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
Expand Down Expand Up @@ -228,13 +272,37 @@
* SVN Server Information
* Ignoring What Subversion Ignores
* Git-Svn Summary
8.X Git and Mercurial
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's a lot of content concerning svn. Should we think about interop with and import from other popular tools?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, but probably just Hg and Perforce. The hg-git tooling and remote helpers shipped in contrib should probably be at least briefly covered.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK; added a Git and Perforce section. If any of these is anemic, we can always drop it later.

8.X Git and Perforce
8.X Git and TFS
8.2 Migrating to Git
* Importing
* Subversion
* Mercurial
* Perforce
* TFS
* A Custom Importer
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I also added TFS; it seems like git is making inroads in that crowd, and there seem to be a lot of them. Or is this too much?

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
Expand All @@ -251,11 +319,12 @@
* Deleting References
9.6 Transfer Protocols
* The Dumb Protocol
* The Smart 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
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍 - I think here is probably a good place for this.

9.8 Summary