GIT-FAKER
You could be the best committer in the planet. 지구 최고의 커미터가 될 수 있습니다.
GitHub을 돌아다니다보면, 대단한 오픈소스 개발자들을 만나볼 수 있다. 엄청나게 많은 Star를 받은 repository를 관리하는 개발자, 혹은 그러한 repository에 contribute하는 개발자 등등..
내 기준에서 멋진 개발자는 자신의 repository의 star수가 얼마나 되었든, GitHub 프로필 페이지가 초록색으로 가득찬 개발자이다. 무언가를 엄청나게 꾸준히 했다는 뜻이니까..
그래서 결심!! 나도 초록개발자가 되어보자.
어떻게 초록 개발자가 되지?
꾸준히 프로젝트를 공개적으로 개발하면 된다. (1년 넘게..) 즉, 일일 커밋을 하면 되는데, 이게 여간 힘든게 아니더라..
개발자의 최고 장점은 자신이 원하는걸 뚝딱뚝딱 만들어낼 수 있다는 점.
한순간에 초록초록 개발자가 되어보기로 결심을 했다.
잔머리를 굴려보자.
가짜 커밋을 마구마구 만들어서 초록초록해 보이도록 해보자. 기존 커밋의 날짜를 바꿀까..도 생각해봤지만 그건 잘 진행되고있는 프로젝트를 망쳐버리는 무.리.수! 컴퓨터의 날짜를 바꿔가며 커밋하는것도 무리수..
git commit with time 이라고 구글신님께 여쭤보면, 어떤 명령어를 통해 커밋을 할 때 날짜를 설정할 수 있는지 잘 설명되어있는 Stack overflow 답변을 주신다. (질문자는 아마 하루종일 놀았다는걸 Boss에게 걸리지 않기 위해 그런 질문을 하지 않았을까 하는..)
$ GIT_AUTHOR_DATE='your date' GIT_COMMITTER_DATE='your date' git commit -m 'new (old) files'
위의 명령어를 통해 가짜 날짜로 커밋할 수 있다고 여기 잘 나와있으니 확인해보자.
어떻게 손쉽게 가짜 커밋을 만들지?
엥? 내 특기가 완전 멘땅의 헤딩 아니냐?
몇 달 전, 아래의 짤방을 script로 만들어준 git-fire가 큰 인기를 끌었다.
일단 할줄 아는게 없으니 git-fire를 Clone!
git-fire는 shell script로 작성되어있었다. 난 Shell Script를 작성해본적이 없는데?
구글신님을 믿어보고, 하나하나 소스코드를 수정해 보았다.
아래는 내가 Shell script를 작성하며 느낀 점들..
신세계다..
하지만 구리다.
a=b는 되지만 a = b 는 안된다.
array=( a b c d e) 는 되지만 array = (a b c d e)는 안되네..
근데 막상 해보니 재밌다.
현재 날짜를 가져오는것 조차 힘들었다. 작년의 연도를 가져오기 위해 구글신님께 검색해보았는데, 안되서!! 결국 현재 연도에서 -1 하는 방향으로 진행을 했다.
연/월/일을 어떻게 정해주지? 2월은 28일까지고.. 1월은 31일 까지고.. 4월은 30일 까진데..
장난으로 최대값이 31이니 모든 달의 커밋을 1일에서 31일까지!!! 라고 코드를 작성했는데..신기하게도 잘 돌아간다. 올ㅋ
시/분/초는 누가 결정하지?
개발자인 내가 결정할 순 없으니 컴퓨터에 맡기자!
여기서 리빙포인트! Shell Script에서 랜덤 숫자는 $RANDOM 를 통해 가져올 수 있다~^^
너무 시끄러워!
for문을 돌면서 Git add, commit을 하는 스크립트이다 보니, 깃 add, commit 할 때 너무 많은 알림 메시지들이 커맨드 라인을 차지했다..
자비로운 구글신님께 부탁을 해보자. 특정 명령어 뒤에 >/dev/null 을 붙이면 해당 명령어로 인해 발생하는 로그들은 /dev/null로 가버리면서 사라지게 된다고 한다.
마무리는?
이름을 뭘로 지을까 고민했는데, 초록초록하게 만들어주니 git-eco로 할까 했지만.. 너무 깃헙에 국한된 작명같아서, git-faker (깃-사기꾼) 으로 결정!
GitHub에 올렸다. 주변 지인들의 반응도 꽤 괜찮았다.
끝! 맺으며
BEFORE
AFTER
지금의 git-faker는 의미없는 텍스트 파일을 만들어서 의미없는 커밋을 만들어주고 있다.
덕분에, git-faker를 사용한 Git repository 언어 분포율을 GitHub에서 확인하면 아래와 같이 Groff라는 놈이 나타나버린다..ㅠㅠ
다음 업데이트 때에는, 사용자가 직접 특정 언어를 선택하면 해당 언어에 맞는 파일을 만들어서 커밋해주도록 개선할 예정이다. 보다 나은 faker가 되기 위해..













