[[ch07-git-tools]]
== Git Tools

By now, you've learned most of the day-to-day commands and workflows that you need to manage or maintain a Git repository for your source code control.
You've accomplished the basic tasks of tracking and committing files, and you've harnessed the power of the staging area and lightweight topic branching and merging.

Now you'll explore a number of very powerful things that Git can do that you may not necessarily use on a day-to-day basis but that you may need at some point.

include::book/07-git-tools/sections/revision-selection.asc[]

include::book/07-git-tools/sections/interactive-staging.asc[]

include::book/07-git-tools/sections/stashing-cleaning.asc[]

include::book/07-git-tools/sections/signing.asc[]

include::book/07-git-tools/sections/searching.asc[]

include::book/07-git-tools/sections/rewriting-history.asc[]

include::book/07-git-tools/sections/reset.asc[]

include::book/07-git-tools/sections/advanced-merging.asc[]

include::book/07-git-tools/sections/rerere.asc[]

include::book/07-git-tools/sections/debugging.asc[]

include::book/07-git-tools/sections/submodules.asc[]

include::book/07-git-tools/sections/bundling.asc[]

include::book/07-git-tools/sections/replace.asc[]

include::book/07-git-tools/sections/credentials.asc[]

=== Summary

You've seen a number of advanced tools that allow you to manipulate your commits and staging area more precisely.
When you notice issues, you should be able to easily figure out what commit introduced them, when, and by whom.
If you want to use subprojects in your project, you've learned how to accommodate those needs.
At this point, you should be able to do most of the things in Git that you'll need on the command line day to day and feel comfortable doing so.
