Deleting a local branch using the GitHub command line

Although it’s taken me a while to get to this point, I have to say that I really like GitHub. Historically I’ve used either VSS, TFS or SVN for source control. Each has its quirks, but essentially they all work in a similar fashion. GitHub feels (and probably is) vastly different.

Not being a massive fan of using command lines for simple tasks I do everyday, I use GitExtensions to add a UI to GitHub. It allows me to do pretty much everything I can do using the GitHub command line, and integrates really well with Visual Studio. However, one of the things it won’t let me do is delete a local branch quickly, especially if I have a few such branches to delete. I tend to use the GitHub website to deleted remote branches.

So, here’s the command to delete a local branch:

git branch -d the_local_branch_name 

Correction: I’ve since realised that it is possible to delete a local branch using the UI, as shown in the following screenshot:

Deleting branches

Deleting old IIS logs

The other week a business I was working with experienced “a perfect storm”. A production web-server ran out of disk space due to the build-up of IIS logs. Normally the standard monitoring tools used by the organisation would have picked this up, but it turns out they hadn’t been configured properly and so the alerts were being emailed to the wrong team! After various “it shouldn’t have been possible” conference calls, we decided to automate the deletion of log files for IIS (and for another system) after seven days. I figured this functionality would be offered out of the box by IIS. I was wrong!

Instead, I found this awesome post on Stack Overflow that answered the question using the forfiles command.

I create a daily schedule containing the following command to delete IIS logs:

forfiles /p "C:\inetpub\logs\LogFiles" /s /m "*.*" /c "cmd /c Del @path" /d -7

…and this to delete my other log files:

forfiles /p "C:\application_name\logs\" /m "application_name.log*.log" /c "cmd /c Del @path" /d -7

Note that I dropped the /s in the second command because I know that my application logs are all in a specific folder, and the file name pattern I’m using matches roll-over files created by log4net.

This works like a dream.