Git 101

git

#1

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

     glgga
    
  3. make it permanent.

     git filter-branch -- --all
    

More info: https://stackoverflow.com/questions/4515580/how-do-i-remove-the-old-history-from-a-git-repository

อยากจะ 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'