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: 
This is the way I generally follow to combine multiple Commits into a single commit before I push the code.

To achieve this, I suggest you use '**squash**' concept provided by GIT.

Follow the below steps.

**1) git rebase -i master** (instead of **master** you can also use a specific commit)

open the rebase interactive editor, where it will show all your commits. Basically where you need to identify the commits which you want to merge into a single commit.

Imagine these are your commits and shown something like this in the editor.

```
pick f7f3f6d changed my name a bit    
pick 310154e updated README formatting and added blame   
pick a5f4a0d added cat-file  

```

It's important to note that these commits are listed in the opposite order than you normally see them using the log command. Means, the older commit will be shown first.

2) **Change 'pick' to 'squash'** for last committed changes. something like shown below. Doing that so, your last 2 commits will be merged with the first one.

```
pick f7f3f6d changed my name a bit         
squash 310154e updated README formatting and added blame   
squash a5f4a0d added cat-file

```

You can also use short form if you have lot of commits to combine:

```
p f7f3f6d changed my name a bit         
s 310154e updated README formatting and added blame   
s a5f4a0d added cat-file

```

for editing use 'i', it will enable the editor for insertion. Keep in mind top most(oldest) commit cannot be squashed as there is no previous commit to combine with. So it has to be picked or 'p'. Use 'Esc' to exit insert mode.

3) Now, **save the editor** with the following command.
**:wq**

When you save that, you have a single commit that introduces the changes of all three previous commits.

Hope this will help you.
**First**: nothing tells you to only have one commit per branch per push: a push is a publication mechanism allowing you to publish a local history (i.e. a collection of commits) on a remote repo.

**Second**: a `git merge --no-ff topical_xFeature` would record on master as a single commit your topic work, before pushing `master`.  

(That way, you keep `topical_xFeature` around for further evolutions, that you can record on `master` as a single new commit on the next merge --no-ff.  

If getting rid of `topical_xFeature` is the goal, then `git merge --squash` is the right option, as detailed in [Brian Campbell](https://stackoverflow.com/users/69755/brian-campbell)'s [answer](https://stackoverflow.com/questions/5721566/combining-multiple-commits-into-one-prior-to-push/5721879#5721879).)