{ "feed": { "id": "urn:uuid:b48fb060-c28d-5798-9996-f30c6f8d947a", "link": [ { "@attributes": { "href": "\"http://jfolson.com#{current_page.url}\"", "rel": "self" } }, { "@attributes": { "href": "http://jfolson.com/" } } ], "title" : "Problem Solving", "subtitle" : "Algorithms, Programming, Math and Food", "updated" : "2013-04-11T10:36:49-04:00", "author": { "name": "Jamie F Olson" }, "rights" : "Copyright (c) 2013, Jamie F Olson", "entries" : [ { "summary" : "
One of the things I\u2019ve liked about git is how much it encourages responsible and clean commits. Personally, I\u2019m not there yet. I commit when I think to, usually when I\u2019m at a reasonable stopping point, which means I just end up doing git commit -a
rather than adding and committing clean groups of related
One of the things I\u2019ve liked about git is how much it encourages responsible and clean commits. Personally, I\u2019m not there yet. I commit when I think to, usually when I\u2019m at a reasonable stopping point, which means I just end up doing git commit -a
rather than adding and committing clean groups of related changes.
Because of this, when I submitted a pull request to the awesome Pandoc, my commit history was a mess. The owner of the project, John MacFarlane, reasonably asked to to separate things into nice clean commits. Embarrassingly, I\u2019d never done this before, but everything went a bit smoother than expected.
\nThe git rebase
command allows you to rewrite the commit history of your project. There are lots of ways to do this, but I found the easiest to be:
git rebase -i HEAD~10
\nWhich will allow you to edit the ten most recent commits.
\nThe git documentation describes how to use this, but I had trouble using the squash
option and just ended up edit
ing them all.
As mentioned there, git reset HEAD^
resets the staged commit and then you\u2019re free to commit as you wish before using git rebase --continue
to move forward.
First things first, so install rvm and all your dependencies.
\n\\curl -L https://get.rvm.io | bash -s stable\nsource $HOME/.rvm/scripts/rvm\nrvm install 1.9.3\nrvm use 1.9.3\necho "source $HOME/.rvm/scripts/rvm" >> ~/.bash_profile
\n",
"content" : "First things first, so install rvm and all your dependencies.
\n\\curl -L https://get.rvm.io | bash -s stable\nsource $HOME/.rvm/scripts/rvm\nrvm install 1.9.3\nrvm use 1.9.3\necho "source $HOME/.rvm/scripts/rvm" >> ~/.bash_profile\nbundle install
\nFor some reason, this failed when installing v8, but it worked when I just explicitly installed it:
\ngem install
\n",
"title" : "Deploying a site with Middleman and Git",
"updated" : "2013-03-07T00:00:00+00:00",
"id" : "urn:uuid:d2e86e62-6f90-5977-a159-525c45ecc9dc",
"link" : "http://jfolson.com/blog/2013/03/07/git-middleman-deploy/"
},
]
}
}