Re: Basic Git Questions
From: Thomas Rast <hidden>
Date: 2016-06-15 22:50:16
Konstantin Khomoutov wrote:
quoted
2. Also sometime when the code is committed, I realize that I have forgot to change or add a file. Is there a way we can we commit a file to existing commit number with git log showing only the old git commit number and not creating a new one for the last commit.`git commit --amend` does exactly that -- amends the last commit (pointed by the HEAD ref).
Let me add that you can fundamentally not edit any git object in any
way without its ID (hash, sha1, whatever you call it) changing. All
methods of "changing" commits, like amend, rebase, filter-branch
etc. always create a new object. The trick is that, especially with
amend, the branch is also changed to point to the new one, so unless
you have already merged or pushed that commit, this is as close to
"changing" as it gets.
Tv put this more eloquently as: "you can never change; you can only
rewrite and forget".
If you *have* merged or pushed the commit, you shouldn't rewrite
history. It's not that hard to fix up your local merges, but if you
have pushed the history and others have started working with it, it's
*very* annoying for them.
--
Thomas Rast
trast@{inf,student}.ethz.ch