User login


Ignore all Vim temporary files

v ~/.gitignore


git config --global core.excludesfile ~/.gitignore

Replace local files or directories with repository version

git rm -rf directory-that-annoys-us-locally-but-is-ok-in-repository
git pull
git checkout directory-that-annoys-us-locally-but-is-ok-in-repository

Not pretty or proper but it works.

Creating a patch with Git suitable for submitting to

Take the hash of a 'before' commit and the 'after' commit 'sha' hash and stay relative to the current directory and output a patch:

~/code/dgd7/drupal/sites/all/modules/views$ git diff --relative 5ac40a1 cb64d08 > 817748-views-book-hierarchy-sort-12.patch

If you've merely made the changes but not committed them you can use git diff > patch_name-1234-57.patch or if you've staged but not committed you can use git diff --cached patch_name-1234-57.patch.




cd ~
scp -r customhome

On the server:



And don't forget!

See your git commit history with files modified


git log --name-only -5

Undo a conflicting change in your working copy that you didn't want anyway

In short, resolve a conflict in favor of the outside repository.

The file can be a

mv offending.file ~/elsewhere
git checkout offending.file

See also for resetting everything:

Git update and ignore local changes

The don't-take-no-for-an-answer way:

git reset --hard


Restore locally deleted files with git

In SVN, running svn update will restore any files you have deleted locally where you have not explicitly committed the removal. Not so in git (or at least git-svn) for removed or moved files.

The tip found will restore not just one, but every deleted file. Agaric recommends you check what you're restoring with just git ls-files -d (where -d stands for --delete) first.

git ls-files -d | xargs git checkout --

Resolve a conflict to use local files after a merge goes bad in git pull

benjamin-agaric: looking for a little git help... i've got my repos on the server
I was pulling from it, but when I tried to push i noticed that i must have done it wrong and had the repository url as http
I changed that to the ssh style git. --and i was now connected to the repository two ways
the really weird thing is that when I pushed it said it wasn't up to date (could not fast forward), and when I pulled I got a conflict!!

Syndicate content