For me, I tend to commit frequently, sort of like my obsession with constantly hitting CTRL-S while working in an IDE. Before I push my changes I like to squash the commits into more cohesive commits. If anything, I think it makes it easier on my colleagues for code review.
I do the same in hg. I do `hg amend` all the time to keep adding changes to my commit. At the end I may selectively undo some changes with `hg uncommit --interactive` or `hg uncommit --all` and redo the whole thing piecemeal with `hg commit --interactive` in order to slowly split up my work into several commits. Evolve makes it really easy to keep (and ignore!) a meta-history of all of my editions, with a clear lineage of which new commit replaced which prior commit.
I may also rebase my work onto the latest head at the end (not to be confused with git HEAD).
And all of this with a very nice interface. It's always --interactive, not sometimes --patch and sometimes --interactive.
No it's not, it rewrites and destroys history. The problem it solves is "keeping the history clean", when actually it's not what you want. You don't see your history, you see logs and diffs. So you want to keep your logs and diffs clean. There should be an other solution to this other than simply removing/merging commits and eventually removing information with it.
Some of the arguments against merging made in this article seem a little strange, for example saying "If folks on topic branches rebase, there will not be any conflicts on merge" after previously stating "It’s also a great idea to rebase periodically - several times a day", as there would also be no merge conflicts if the branch was merged in periodically as well. If merge commits are so abhorrent, just alias
git log
to
git log --no-merges
allersj|10 years ago
jordigh|10 years ago
I may also rebase my work onto the latest head at the end (not to be confused with git HEAD).
And all of this with a very nice interface. It's always --interactive, not sometimes --patch and sometimes --interactive.
limeyx|10 years ago
Git allows you to push commits to other people and then rewrite history, which is different
mpdehaan2|10 years ago
http://michaeldehaan.net/post/116465000577/understanding-whe...
leni536|10 years ago
dajobat|10 years ago