모든 작업폴더를 최신 git revision로 업데이트 하기

옛날옛적에 SVN을 쓰던 시절엔 모두가 한 저장소를 바라보고 작업을 했기 때문에 내 로컬 소스를 항상 최신 내용으로 유지해야만 했다. 그래서 아침에 출근한 후 제일 먼저 모든 작업 폴더의 버전을 최신으로 업데이트 시켜 놓는 일을 매일 했었다. 이 작업은 저장소가 크면 클수록 오래 걸렸기 때문에 모닝커피 한잔 마시고 올 여유정도가 있었던 시절이었다.

git을 도입하고 나서는 딱히 내 저장소를 origin과 매번 맞출 필요를 못 느꼈는지 몰라도 작업을 좀 하다보면 로컬 기록이 origin과 차이 많이 나는일이 생긴다. fork & pull-request 전략을 도입하는 프로젝트의 경우엔 이러한 일이 많았다. upstream의 내용은 내 로컬의 master와 몇달이상 차이가 나는 때도 있었다. 문제는 누군가가 origin을 rebase나 amend 해버리면 hash가 바뀌어버려 내 로컬 작업 기록이 무용지물이 되는 일이 종종 생겼다. 물론 diff 뜨고 patch 만들어 적용하면 되지만 기록이 한참 차이가 나서 내 작업을 반영하기 힘들어지는 상황은 나뿐만 아니라 동료들도 짜증나게 한다.

따라서 로컬의 작업 폴더들을 SVN을 사용할때 그랬던 것처럼 매일 작업하기 전에 최신으로 업데이트 해줄 필요가 생겼다. 그래서 간단한 스크립트를 만들어봤다. 이 스크립트를 로컬의 가장 상위 작업 폴더에 놓고 실행시키면 바로 아래 서브폴더들이 git 폴더일 경우 이를 최신 내용으로 업데이트를 해준다. 별거 없지만 필요한 분들이 있을것 같아 공유한다.