Question: Is there a way to make the tag name on acts\_as\_taggable\_on to be URL friendly?

For example, at the moment I have 'tags/foo' and 'tags/bar' working great. However when I add spaces to the name such as 'rabbits foot' the url is 'tags/rabbits%20foot'. I'd like to replace that %20 with a dash.

Thanks in advance!

**UPDATE**

I just noticed that stackoverflow actually uses a very similar or identical way of doing tags to what I have in mind.

Answer: 
For your first question, no, there's nothing wrong with pushing multiple commits at once. Many times, you may want to break your work down into a few small, logical commits, but only push them up once you feel like the whole series is ready. Or you might be making several commits locally while disconnected, and you push them all once you're connected again. There's no reason to limit yourself to one commit per push. 

I generally find that it's a good idea to keep each commit a single, logical, coherent change, that includes everything it needs to work (so, it does not leave your code in a broken state). If you have a two commits, but they would cause the code to be broken if you only applied the first one, it might be a good idea to squash the second commit into the first. But if you have two commits where each one makes a reasonable change, pushing them as separate commits is fine.

If you do want to squash several commits together, you can use `git rebase -i`. If you're on branch `topical_xFeature`, you would run `git rebase -i master`. This will open an editor window, with a bunch of commits listed prefixed by `pick`. You can change all but the first to `squash`, which will tell Git to keep all of those changes, but squash them into the first commit. After you've done that, check out `master` and merge in your feature branch:

```
git checkout topical_xFeature
git rebase -i master
git checkout master
git merge topical_xFeature

```

Alternatively, if you just want to squash everything in `topical_xFeature` into `master`, you could just do the following: 

```
git checkout master
git merge --squash topical_xFeature
git commit

```

Which one you choose is up to you. Generally, I wouldn't worry about having multiple smaller commits, but sometimes you don't want to bother with extra minor commits, so you just squash them into one.
1. First choose which commit you want everything to come after.

```
git reflog
5976f2b HEAD@{0}: commit: Fix conflicts
80e85a1 HEAD@{1}: commit: Add feature
b860ddb HEAD@{2}: commit: Add something

```
2. Reset to your selected head (I have chosen `HEAD@{2}`)

```
git reset b860ddb --soft

```
3. `git status` (just to be sure)
4. Add your new commit

```
git commit -m "Add new commit"

```

Note: `HEAD@{0}` & `HEAD@{1}` Are now merged into 1 commit, this can be done for multiple commits also.

`git reflog` again should display:

```
git reflog
5976f2b HEAD@{0}: commit: Add new commit
b860ddb HEAD@{1}: commit: Add something

```