Skip to content

Instantly share code, notes, and snippets.

@lukehefson
Created November 27, 2013 13:48
Show Gist options
  • Save lukehefson/7675951 to your computer and use it in GitHub Desktop.
Save lukehefson/7675951 to your computer and use it in GitHub Desktop.
Completely uninstall GitHub for Mac
#!/bin/bash
function remove_dir () {
rm -rf "$1_"
if [ -d "$1" ]
then
mv "$1" "$1_"
fi
}
echo "*** Removing saved user, repositories, and orgs…"
remove_dir "${HOME}/Library/Application Support/GitHub for Mac"
remove_dir "${HOME}/Library/Application Support/com.github.GitHub"
echo "*** Removing preferences…"
if [ -e "${HOME}/Library/Preferences/com.github.GitHub.plist" ]
then
cp -f "${HOME}/Library/Preferences/com.github.GitHub.plist" "${HOME}/Library/Preferences/com.github.GitHub.plist_"
fi
defaults delete com.github.GitHub
defaults delete com.github.GitHub.LSSharedFileList
echo "*** Removing caches…"
rm -rf "${HOME}/Library/Caches/GitHub for Mac" "${HOME}/Library/Caches/com.github.Github"
echo "*** Stopping and removing Conduit…"
launchctl remove com.github.GitHub.Conduit
rm -rf "${HOME}/Library/Containers/com.github.GitHub.Conduit"
echo "*** Removing SSH key…"
find ${HOME}/.ssh -name "*github*_rsa" | while read KEY
do
ssh-add -dK "$KEY.pub"
mv -f "$KEY" "$KEY.bak"
mv -f "$KEY.pub" "$KEY.pub.bak"
done
echo "*** Removing keychain items…"
security -q delete-internet-password -s github.com/mac
security -q delete-generic-password -l 'GitHub for Mac — github.com'
security -q delete-generic-password -l 'GitHub for Mac SSH key passphrase — github.com'
echo "*** Removing command line utility…"
if [ -e "/usr/local/bin/github" ]
then
sudo rm -f /usr/local/bin/github
fi
if [ -e "/Library/LaunchDaemons/com.github.GitHub.GHInstallCLI.plist" ]
then
sudo rm -f /Library/LaunchDaemons/com.github.GitHub.GHInstallCLI.plist
fi
echo "*** Removing git symlinks…"
find /usr/local -lname '*GitHub.app*' -exec sudo rm -f {} \;
@paulthomas
Copy link

Dude! I get a review of bash scripting with the deal!! Thank you Sir.

@thiagoghisi
Copy link

Amazing!!! Thanks for sharing man!

@ColeHud
Copy link

ColeHud commented Jun 16, 2015

Thanks!

@Motti-Shneor
Copy link

Great script.

Question comes to mind though , why no one have thought to add such tool to the Application itself. Mac applications have no real need of "Installer", as they can be self-contained Bundles (file hierarchies, opaque to the user, and appear as one file), but if an application spreads itself so widely over the Mac - why not at least provide a "Remove Application" menu item, that will run a similar script??? beats me.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment