Book Image

Git for Programmers

By : Jesse Liberty
Book Image

Git for Programmers

By: Jesse Liberty

Overview of this book

Whether you’re looking for a book to deepen your understanding of Git or a refresher, this book is the ultimate guide to Git. Git for Programmers comprehensively equips you with actionable insights on advanced Git concepts in an engaging and straightforward way. As you progress through the chapters, you’ll gain expertise (and confidence) on Git with lots of practical use cases. After a quick refresher on git history and installation, you’ll dive straight into the creation and cloning of your repository. You’ll explore Git places, branching, and GUIs to get familiar with the fundamentals. Then you’ll learn how to handle merge conflicts, rebase, amend, interactive rebase, and use the log, as well as explore important Git commands for managing your repository. The troubleshooting part of this Git book will include detailed instructions on how to bisect, blame, and several other problem handling techniques that will complete your newly acquired Git arsenal. By the end of this book, you’ll be using Git with confidence. Saving, sharing, managing files as well as undoing mistakes and basically rewriting history will be a breeze.
Table of Contents (16 chapters)
11
Finding a Broken Commit: Bisect and Blame
13
Next Steps
14
Other Books You May Enjoy
15
Index

Stash

When we reviewed the five areas of Git, we included an area called the stash, but we did not delve into what the stash is. In short, the stash is a place where you can hold (stash) files you've modified but not yet committed:

Figure 10.1: The five areas of Git

The stash can be pretty important. Let's say you are working on a feature and suddenly you are asked to work on a very important bug. You are not ready to commit the code you have, but you can't switch branches with uncommitted files in the work area.

To solve this, you could just make a backup of your directory, and then delete the uncommitted files, but that is very slow and error-prone. Instead, you want to stash them away somewhere that you can get them back when you are ready, which of course is the purpose of the stash.

To see this at work, we need a repository with some commits. Let's quickly make a mirror of the RockyHorror2 repo. To do so, we'll start by making...