본문 바로가기
Front-End/git

하나의 파일에 포함된 여러 수정 사항을, 분리하여 commit 하는 방법(vscode)

by kk님 2023. 9. 7.

여러가지 방법이 있겠지만(인터렉티브 리베이스, git add -p 등 .. )

vscode에서 gui로 제공하는 좋은 방법이 있다.

 

가끔 작업을 쭉 하다 보면, 여러가지 수정 사항이 하나의 파일에 포함되게 되는 경우가 있다.

그럴 때 vscode 의 git diff를 확인하면, 파일 하나이기 때문에 한 파일에 여러가지 diff가 쭈루룩 나열되어 커밋을 통으로 할 수 밖에 없는 상황이 벌어지곤 했는데..

이때 (과거의) 내가 했던 방법은 수정사항들을 메모장에 복붙해서.. 하나씩.. 떼어와 파일을 재 조립하여.. 완성하는 .. 시간이 많이 걸리는 방법으로 수행했다.

 

그러나 인텔리제이에서는 따로 커밋이 가능하다는 말씀을 듣고!

아 그러면 vscode도 제공할 것 같다는 생각이 들어서 빠르게 찾아봤다.

 

구글에 vscode commit only some code로 검색했다.

다행히도 나와 같은 고민을 하는 분이 계셨고, 정말 친절한 gif 로 모든 과정을 보여주셨다!

 

https://stackoverflow.com/questions/34730585/how-can-i-commit-some-changes-to-a-file-but-not-others-in-vscode

 

How can I commit some changes to a file, but not others, in VSCode?

VSCode has excellent git integration but I can't find a way to do partial commits. Basically, I want to be able to select specific changes in my files and stage them without staging the entire file...

stackoverflow.com

Peace!

 

아 실제로 해보면

내가 추가한 코드삭제 및 수정한 코드가 혼재되어 있다.

이를 나눠서 커밋하고 싶었고,

스택오버플로에 나와있는 설명처럼

1. staging하고 싶은 라인을 드래그한다.

2. 드래그한 상태에서 아래 이미지의 우측 상단 버튼 중 ... 을 클릭한다.

3. Stage Selected Ranges 를 클릭한다.

 

그러면 짜잔 하고 control 패널의 staged changes에 해당 코드가 스테이징 된 것을 확인할 수 있다.

위 사진에서 수정된 부분은 여러개였지만, 지금은 한 부분만 변경된 것을 확인할 수 있다.

그리고 나머지 띄엄띄엄 떨어져있던 부분들을 하나의 커밋으로 만들고 싶다면?

(조금 고민을 하긴 했다. 왜냐면 드래그는 .. 떨어진 부분을 할 수 없기 때문에!)

그런데 방법은 의외로 간단하다.

 

그냥 해당 라인들을 각각 따로따로 스테이징 해주면 된다.

왜냐하면, 하나의 파일이기 때문에 모두 합쳐져서 스테이징 되기 때문이다.

휴! 정말 편리한 기능 아닌가~!