Git 101



Git purge old commit

In some scenarios, we just don’t care about history much or maybe we want to keep our repo lightweight. Here is how to completely re-write history.

:exclamation: All commit history will be rewritten. All hashes will be changed. Don’t try to new and old one together. It will be a big mess.

  1. Mark the new origin point (which effects immediately)

     echo 4a46bc886318679d8b15e05aea40b83ff6c3bd47 > .git/info/grafts
  2. check if it’s ok

  3. make it permanent.

     git filter-branch -- --all

More info:

อยากจะ rebase แค่ 1 commit ไปที่ branch อื่น

จริงๆ คำตอบคือ cherry-pick ไม่ใช่ rebase ก็สามารถเอา commit XYZ ไปที่ master ได้โดย

git checkout master
git cherry-pick XYZ

จากนั้นก็ไปลบ XYZ ได้ที่ branch นั้นๆ โดย

git reset --hard HEAD^

Set tab width in git diff

ตั้งค่า tab width ในหน้า git diff – default น่าจะ 8 มั้ง นี่ก็เหลือ 4 พอ

git config --global core.pager 'less -x1,5'