Amending Commits
Goals
- Learn how to amend an existing commit
Change the program then commit
Add an author comment to the program.
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
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.
hello.rb
# Default is World
# Author: Jim Weirich (jim@somewhere.com)
name = ARGV.first || "World"
puts "Hello, #{name}!"
Amend the Previous Commit
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 907a445] Add an author/email comment
Date: Sat Jun 20 20:37:07 2020 +0100
1 file changed, 2 insertions(+), 1 deletion(-)
Review the History
Execute:
git hist
Output:
$ git hist
* 907a445 2020-06-20 | Add an author/email comment (HEAD -> master) [Jim Weirich]
* 4254c94 2020-06-20 | Added a comment (tag: v1) [Jim Weirich]
* c8b3af1 2020-06-20 | Added a default value (tag: v1-beta) [Jim Weirich]
* 30c2cd4 2020-06-20 | Using ARGV [Jim Weirich]
* 4445720 2020-06-20 | 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.
当前内容版权归 gitimmersion 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问 gitimmersion .