lab 19 Amending Commits
Goals
- Learn how to amend an existing commit
Change the program then commit 01
Add an author comment to the program.
File: hello.rb
# Default is World # Author: Jim Weirich name = ARGV.first || "World" puts "Hello, #{name}!"
Execute:
git add hello.rb git commit -m "Add an author comment"
Oops, Should have an Email 02
After you make the commit, you realize that any good author comment should have an email included. Update the hello program to include an email.
File: hello.rb
# Default is World # Author: Jim Weirich (jim@somewhere.com) name = ARGV.first || "World" puts "Hello, #{name}!"
Amend the Previous Commit 03
We really don’t want a separate commit for just the email. Let’s amend the previous commit to include the email change.
Execute:
git add hello.rb git commit --amend -m "Add an author/email comment"
Output:
$ git add hello.rb $ git commit --amend -m "Add an author/email comment" [master eb30103] Add an author/email comment 1 files changed, 2 insertions(+), 1 deletions(-)
Review the History 04
Execute:
git hist
Output:
$ git hist * eb30103 2013-04-13 | Add an author/email comment (HEAD, master) [Jim Weirich] * 1f7ec5e 2013-04-13 | Added a comment (v1) [Jim Weirich] * 582495a 2013-04-13 | Added a default value (v1-beta) [Jim Weirich] * 323e28d 2013-04-13 | Using ARGV [Jim Weirich] * 9416416 2013-04-13 | First Commit [Jim Weirich]
We can see the original “author” commit is now gone, and it is replaced by the “author/email” commit. You can achieve the same effect by resetting the branch back one commit and then recommitting the new changes.