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

Interactive Rebasing

Interactive rebasing is a confusing name for a very useful Git functionality. From a user's perspective, rebase and interactive rebase have little in common.

Interactive rebase allows you to clean up your commits, but only before you push them to the server. With interactive rebasing you can:

  • "Squash" your commits so that your commit history is sparser and easier to read
  • Modify the message for your commits
  • Fixup, which is just like squash except that it doesn't stop and ask for a new message
  • Drop, which removes a commit

The key thing here is that you are modifying commits, not the files that go into a commit. And, as I'll keep mentioning, you must do this interactive rebasing before you push your commits to origin. You never modify commits once they are on the server because other developers may be interacting with the commits, and you will likely create conflicts, which are time-consuming to...