Am 11/13/2011 18:04, schrieb vinassa vinassa: > I am wondering about how git behaves currently, if I kinda win the > lottery of the universe, and happen to create a commit with a SHA-1 > that is already the SHA-1 of another commit in the previous history. > However improbable. > > Would that be detected, so that I could just add a newline, and then > commit with a different resulting SHA-1, > would I just lose one of those commits (hopefully the new one), would > I end up with a corrupted repository? I *think* the following would happen: 1. Git detects that the (commit) object that it is about to generate already exists, and does not write a new one. 2. Then the branch's ref is updated to the SHA-1. Since the original commit is somewhere back in history, this is effectively like 'git reset --soft that-commit'. 3. At your next 'git diff --cached', you notice unexpected differences between the index and the branch head. You will wonder what happened. ("Who typed 'git reset --soft that-commit' while I was looking the other way??") 4. To recover, you just 'git reset --soft @{1}' to revert to the state before the commit attempt, and commit again. Your commit message from the first attempt will be lost unless you have used -C or -F for your commit. At any rate, you can reuse the exact same commit message for this second commit attempt, because by now time will have advanced by at least one second, which gives you a different commit timestamp and, hence, a different commit object. -- Hannes -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html