Skip to content

Instantly share code, notes, and snippets.

@AlisterH
Last active January 19, 2024 10:50
Show Gist options
  • Save AlisterH/f229f268d4513737aabcaea785359f1c to your computer and use it in GitHub Desktop.
Save AlisterH/f229f268d4513737aabcaea785359f1c to your computer and use it in GitHub Desktop.
useful git stuff
# ignore file permission changes
git config core.filemode false
http://joaquin.windmuller.ca/2011/11/16/selectively-select-changes-to-commit-with-git-or-imma-edit-your-hunk
https://web.archive.org/web/20170630184446/http://www.naleid.com/blog/2012/01/12/how-to-use-kdiff3-as-a-3-way-merge-tool-with-mercurial-git-and-tower-app/
http://blog.wuwon.id.au/2010/09/painless-merge-conflict-resolution-in.html
https://marcin-chwedczuk.github.io/use-meld-as-git-merge-diff-tool
https://martin-thoma.com/software-versioning-cheat-sheet/
https://git-scm.com/book/en/v2/Git-Tools-Rewriting-History
https://stackoverflow.com/questions/2428137/how-to-rebase-one-git-repository-onto-another-one
https://robots.thoughtbot.com/git-interactive-rebase-squash-amend-rewriting-history
https://stackoverflow.com/questions/11133290/which-version-of-the-git-file-will-be-finally-used-local-base-or-remote
https://gist.github.com/katylava/564416
@AlisterH
Copy link
Author

AlisterH commented Jan 17, 2024

By default on Windows git uses autocrlf, which makes a working folder incompatible with linux git (i.e. WSL).
To fix:

#In WSL
git rm --cached -r .
git reset --hard HEAD
git config --global core.autocrlf false
#Or
git config --local core.autocrlf false
#This is also useful
git config --local core.filemode false

Also, to reset file times to allow another diff program to work:

apt install git-restore-mtime
git restore-mtime

@AlisterH
Copy link
Author

Warning: the dos2unix command that comes packed with msysgit (as of 1.4.8) has a non-standard (IMO dangeorous and idiotic) behaviour: it does not force UNIX newlines, but instead toggles DOS <-> UNIX . To force UNIX you must use the (non standard) --d2u option.

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