이전에 vscode 환경에서 git 을 사용할 때는 일일히 터미널에
git add
,commit
,reset
등 명령어를 입력하여 관리했었다. 하지만 webstorm 편집기를 사용한 이후, 현재 저런 명령어들을 칠 필요없이 간편하게 git 을 다룰 수 있다.
이런 편리한 기능들을 모른채 명령어를 쳐왔는데, 마우스 클릭하나면 명령어들을 대체할 수 있었다.💪
git log 창은 다음과 같이 열 수 있고, 해당 로그에서 내가 커밋한 내역을 살펴볼 수 있다.
주의해야할 점이 있는데, undo commit
과 커밋메시지 변경(amend)은 이미 push 된 커밋에 다음의 명령어들을 적용할 경우 이전에 원격 저장소에 공유된 커밋을 변경하려는 시도로, 다른 개발자와의 협업에 문제를 일으킬 수 있다.
그러므로 원격 저장소에 이미 push 된 커밋을 수정하고 싶다면, 변경된 내용을 새로운 커밋으로 추가하여 원격 저장소에 푸시하는 revert commit
방법을 추천한다. 이를 통해 원격 저장소의 히스토리를 안전하게 유지하면서 원하는 변경 사항을 반영할 수 있기 때문..!
⇒ 즉 이미 push 된 커밋은 undo commit
혹은 커밋메시지 변경 금지, 그 대신 revert commit
을 사용하자
이에 대한 부분은 밑의 내용을 보고 나면 더 정확히 이해가 될 것이다.
커밋을 취소하는 기능은 Undo Commit
, Revert Commit
이렇게 두 가지가 있다. 둘 다 이전 커밋의 변경사항을 제거해주지만 큰 차이가 하나 존재하는데, 바로 커밋을 취소할 때 새로운 커밋을 생성하는지에 대한 여부이다.
Undo Commit
선택한 커밋을 제거하고 해당 커밋의 변경 사항을 작업 트리(Working Tree)로 되돌린다. 즉, 커밋을 생성하기 이전의 상태로 작업 트리를 되돌리는 것. 이는 로컬 저장소에서만 커밋을 취소하는 것이며, 원격 저장소에는 영향을 주지 않는다. 이 기능은 원래 git 의 git reset
명령어를 사용하여 구현된다.
예) 커밋 222 를 취소시켜보자
⇒ 취소하고 싶은 커밋에 오른쪽 커서로 클릭 후 Undo Commit
를 클릭
ok 를 클릭
깃 로그에서 커밋(커밋 222)이 아예 사라진 것을 볼 수 있고, 변경사항이 다시 작업트리에 다시 올라가있다.
Revert Commit
Undo Commit
은 선택한 커밋이 내역에서 아예 사라지는 반면, Revert Commit
은 기존 커밋이 그대로 내역에 유지되는 동시에 해당 커밋을 되돌리는 새로운 커밋을 생성한다. 이 새로운 커밋은 이전 커밋의 변경 사항을 반대로 적용하여 생성되는데, 즉 선택한 커밋의 변경 사항을 제거하는 또 다른 새로운 커밋을 만드는 것이다. 이는 말그대로 커밋되는 것이기 때문에 당연히 작업트리에 남지 않고 커밋이 된 상태로 남게된다. 해당 기능은 원래 git 의 git revert
명령어를 사용하여 구현된다.
⇒ 취소하고 싶은 커밋에 오른쪽 커서로 클릭 후 Undo Commit
를 클릭
작업트리에 남지 않고 이전 변경사항이 취소되는 새로운 커밋이 추가
작업 트리 깨—끗
이를 다시 revert 하면 변경취소됐던 것을 다시 역으로 취소하여 원상태로 복구가 된다.
이미 커밋된 메시지를 변경해야하는 경우가 생길 수 있다. 이를 해결해주는 기능이 고맙게도 webstorm 에 내장되어있다!
⇒ 변경하려는 커밋에 오른쪽마우스 클릭 후 Interactively Rebase from Here
를 클릭
창이 하나 뜨는데, 변경하려는 커밋메시지의 커밋을 클릭한 후, REWORD 버튼을 누르면, 다음과 같이 커밋메시지를 변경할 수 있도록 텍스트창이 띄워진다.
“커밋 aaa” ⇒ “커밋 bbb” 수정 후 여백을 누르면 변경이 된다.
마지막으로 우측 하단의 Start Rebasing
버튼을 눌러주면 된다
커밋 메시지가 aaa 에서 bbb 로 잘 변경된 것을 확인할 수 있다.
정말 유익한 정보네요!