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

Answers

What do you do if you left out a changed file in the last commit?

You solve this with the same command you use to modify the message in the last commit, using --amend, but you need to indicate that you do not want to edit the message (make sure your files are staged):

git --amend --no-edit

What do you do if you committed to the wrong branch?

Checkout or create the branch you want to have committed to and then use reset to remove the change from the remote branch, but leave your files in the index (staging area) to be committed to the new branch:

git branch <new branch>
git reset HEAD~ --hard

What do you do if you corrupted a file in a previous commit?

First, use git log to find a commit before the corruption. Get the ObjectID of that commit. Next, get the problem file (and only that file) from the good commit:

git checkout ObjectID --<path to file> 

Remember: The path to the file is relative to the root of the project.

...