开发者

Amend a commit that wasn't the previous commit [duplicate]

This question already has answers here: How do I modify a specific commit? (19 answers) Closed 8 years ago.

Frequently I'll have a workflow like the following:

  1. Commit changes to a group of files
  2. Commit changes to a different group of files
  3. Realize I missed some changes that belong in the first commit
  4. Curse

I can't make use of git commit --amend because it'开发者_开发技巧s not the most recent commit that I need to change. What's the best way to add changes to the first commit without touching the second one?


You can use git rebase to solve this. Run git rebase -i sha1~1 where sha1 is the commit hash of the one you want to change. Find the commit you want to change, and replace "pick" with "edit" as described in the comments of the rebase editor. When you continue from there, you can edit that commit.

Note that this will change the sha1 of that commit as well as all children -- in other words, this rewrites the history from that point forward. You can break repositories doing this, but if you haven't pushed, it's not as much of a big deal.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜