Git

永久忽略一个对已 commit 文件/目录 的修改:

$ git update-index --assume-unchanged xxx

中文路径乱码:

$ git config core.quotepath false

提交时使用无插件的 vim:

$ git config --global core.editor "vim --noplugin"

Update fork from source:

$ git remote add upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git
$ git fetch upstream
$ git checkout master
$ git merge upstream/master

Create empty branch:

$ git checkout --orphan YourBranchName

Delete remote tag:

$ git push --delete origin tagname

将被忽略的语言(如 Markdown、restructuredText)计入 Languages 统计:

*.rst linguist-detectable=true

Rebase 时保留 base 分支改动:

git checkout --theirs <FILE>

重新提交时刷新日期:

git commit --amend --date="$(date -R)"

GitHub

我订阅的所有 Issue

git filter-repo

View git object sizes:

$ git filter-repo --analyze
$ vim .git/filter-repo/analysis/path-all-sizes.txt

Create a fresh cloned repository:

$ cd ~/documents
$ git clone --no-local bullet bullet2

Run git-filter-repo:

$ git filter-repo --path _images/                         \
                --path _downloads/                      \
                --path _static/logo.png                 \
                --path  static/logo.png                 \
                --path _static/sphinx.png               \
                --path jstatic/sphinx.png               \
                --path _static/sphinxnotes-logo.png     \
                --path  static/sphinxnotes-logo.png     \
                --path _static/favicon.png              \
                --path  static/favicon.png              \
                --path  static/favicon.png              \
                --invert-paths