Commit 습관, git reset, git add -p

잘못 된 습관

평소에 코드를 수정하거나, 내가 짠 코드가 안돌아가서 고쳐야하는 부분이 생기면 보통 메모장을 키고 해당 부분 코드를 전부 복붙한 뒤에 코드 수정을했다.

이렇게 하다보니 다시 수정하기 전의 코드로 돌아가고 싶을때 Ctrl + Z를 연타한다거나, 메모장에서 복붙해둔 코드를 다시 복붙하는 일이 빈번했는데 git reset을 이용하여 특정 커밋 부분으로 reset할 수 있다는 것을 알았다.

git Reset

image-20200202193500908

로그를 보면 리팩토링을 위해 service를 추가한것을 알 수 있다. 여기서 git reset <커밋>을 지정해서 원하는 커밋지점으로 되돌릴 수 있다.

옵션으로 –hard, –soft, –mixed(default)가 있는데, –hard로 할 경우 수정한 코드가 전부 날라가고 reset한 커밋지점으로 코드가 바뀌니까 주의하자.

그리고 이미 원격 repo에 push를 한 경우에는 커밋지점으로 돌아가도 이미 로그가 올라가있으니 소용없다. 커밋지점으로 돌아간 후 다시 add 후 push해도 충돌이 발생한다.

커밋 습관

이전에는 단순히 예비 개발자로써 “git을 사용해야한다” 라는 생각때문에 git의 장점을 알아보지도 않고(물론 지금도 자세히 알지는 못하지만) git을 썼다. 그런데 커밋을 위처럼 부분부분 나누어서 처리하면 log만 보고도 어느 작업을 했는지 쉽게 알 수 있고, 특정 커밋지점으로 되돌리기도 쉽다.

git add -p

이를 위해서 git add에 -p옵션을 두어 작은 hunk로 나누어 add후 commit하면 로그확인이 더욱 쉬워진다.

  • 사실 아직까지 크게 와닿는 부분은 많이없다. 더 큰 프로젝트나 협업하는 과정에서 장점을 크게 느낄 수 있기를 바란다.

참고자료

https://www.devpools.kr/2017/02/05/%EC%B4%88%EB%B3%B4%EC%9A%A9-git-%EB%90%98%EB%8F%8C%EB%A6%AC%EA%B8%B0-reset-revert/

태그: ,

카테고리:

업데이트:

댓글남기기