개발/Git

    [git] reflog : 선배의 커밋을 날렸을 때(git reset --hard복구 방법)

    어느 날 밤, 코드를 수정하여 커밋을 푸시했다. 사내 보안 시스템은 내 코드에서 보안 정보를 찾아냈고 나에게 알람이 전송되었다. 나는 git reset HEAD^를 하고 push origin 브랜치 --force를 날렸다. push를 하고 나니 내가 선배의 커밋까지 reset를 시키고 원격 리모트를 업데이트 시켰다는 것을 깨달았다. 그 순간 자리에서 일어나 소리를 질렀고 머리를 쥐어 뜯으며 내 덤벙거림을 탓했다. 나는 혼란스러운 마음에 침대에 누워 천장을 바라보았다. "아... 망했네..." 탄식이 절로 나올 수 밖에 없는 상황이였다. 그리고 멍을 때리다 지푸라기라도 잡는 심정으로 검색을 했다. 그리고 git reflog라는 것을 발견하고 터미널에 치니 remote에서 pull받고 merge된 커밋이 내..

    [Git] Git flow 정리 및 실습

    [Git] Git flow 정리 및 실습

    Git flow 개념에 대한 정리는 Vicent Driessen의 글로부터 하게되었다. https://nvie.com/posts/a-successful-git-branching-model/ 들어가기전에 학교에서 프로젝트를 진행할때 git을 교수님이 쓰라고 하셔서 써본 기억이 있다. 평소에 repo를 그냥 code 저장소로 사용하기만 했었기 때문에 협력 툴로써 git은 처음 사용하는 거였다. 대부분의 코딩 팀플이 그러듯 해당 과정에서 branch의 의미는 무색해졌고 결국에는 4명이 모두 main에서 작업하는 경이로운 프로젝트가 되었었다. 당시에 이 글만 읽고 진행했어도 더 좋은 git관리를 했을 텐데 아쉬움이 느껴진다. 탈중앙화와 중앙화를 동시에 프로젝트로 작업하다보면 프로젝트 내에 각자의 역할이 존재한다..