개발 노트/Git Archive

Git : add -p 옵션 사용하기 - 수정 사항만 commit 하기

김뀨리 2022. 6. 27. 12:51
728x90
커리어리에 썼던 내용을 블로그로 옮겨왔습니다.
원글은 여기에서 확인해주세요 :)

 

전 직장에서 4년간 svn을 사용했습니다. 현 직장으로 이직하면서 git은 처음 쓰게 되었죠.

svn을 사용하던 시기의 제 commit 과정은 다음과 같았어요.

 

1️⃣ 코드 수정

2️⃣ Compare tool을 통해 코드 비교

  • 최신 버전 svn checkout 해두는 별도의 디렉토리 존재
  • 내가 주로 사용하는 수정용 디렉토리 존재
  • 두 디렉토리를 beyond compare 또는 WinMerge 툴로 비교
    ** 나중에는 svn 자체에서 diff 툴로 WinMerge를 연결시켜 수정용 디렉토리에서 바로 compare가 가능

3️⃣ svn Commit 진행

  • commit 하면서 다시 한번 올라가지 말아야 하는 내용은 없는지 파일 하나 하나 열어보고 확인

4️⃣Commit Log를 넣고 commit

 

이 일련의 과정에 적응되어서 그런지 이직 후 git을 쓸 때 내가 뭘 수정했는지, 지금 commit 하는 게 무엇인지 확인이 어려웠습니다. formatter 사용으로 인한 엄청나게 많은 수정사항이 생기기도 했죠. 제가 핵심으로 수정한 것만 commit 하고 싶었는데 말이에요. (전 직장에서는 불필요한 commit을 엄격히 지양했습니다. 현재는 Coding rule 만 지킨다면 commit 내용적인 면에서는 자유로워요)

 

시간이 조금 지난 후 부터는 git diff 명령을 활용해 unstaged에 있는 파일들과 remote에 있는 파일을 비교했어요.

조금은 발전했다고 볼 수 있습니다. 그러다 다른걸 검색 중에 git add -p 옵션에 대한 블로그가 얻어걸렸어요(?).

 

수정 사항들을 비교해 주고 사용자가 선택해서 Unstaged -> Staged area로 선택을 할 수 있습니다. 파일 단위가 아닌 수정사항들을 적당한 단위로 나누어서요! 이 옵션을 사용하게 된 뒤로 diff의 사용은 줄었고, add를 반복하면서 어떤 수정사항들이 있었는지 확인할 수 있게 되었고, 테스트 코드 등을 제거할 수 있었어요.

 

아, commit 하는 단위가 더 잘개 쪼개진 것도 장점이에요. git add -p 옵션으로 확인하면서 두 가지 정도의 수정 내용이 발견되면 하나씩 commit 해야겠다. 하고 머릿속으로 분류가 가능해졌거든요. 혹시 아직 한 번도 이 옵션을 사용해 보지 않으셨고 'git add . '만 사용해 보셨다면 안전한 commit을 위해 'git add -p' 옵션을 사용해 보시는 걸 강력 추천드립니다!

728x90