서로 다른 개발자들이 모여 하나의 서비스를 만들다보면 깃이 꼬일 때가 분명 발생할 것이기에 깃 커맨드를 제대로 이해해두자(애초에 안꼬이는게 최고이지만...)
작업 프로젝트에 변경사항이 생기면 깃은 자동으로 변경 사항이 생긴 것을 감지합니다. MacOS oh-my-zsh 기준 ~$!1
처럼 느낌표와 숫자가 떠있는 경우와 같습니다. 이 때 다음의 명령어를 통해 변경 사항을 스테이징 영역에 저장할 수 있습니다.
~$ git add <file>
git add api/signin/.
여기서, git add .
와 같이 모든 변경 사항 저장은 최대한 피해야 합니다. 예를들어 django에서 settings.py
파일과 같이 로컬 세팅이 원격 저장소에 올라가면 안되는 파일을 건드린 기록이 남아있다면 전부다 스테이징 영역으로 넘어가기 때문입니다.
만약 실수로 모든 변경사항을 스테이징 영역에 저장했다면 어떻게 해야할까요? 다음 두 가지 명령어를 이용해 취소할 수 있습니다.
~$ git reset HEAD <file>
~$ git restore --staged <file>
git restore api/signin/.
Ctrl + z
또는 Cmd + z
로 변경 사항을 되돌릴 수 있습니다. 하지만 이 방식은 순차적으로 진행되기 때문에 일부 변경 사항을 되돌릴 때 유리합니다.
작업 디렉토리 내 특정 파일에 적용 된 변경 사항을 이전 커밋 시점까지 되돌리는 명령어가 있습니다.
git restore <file>
git checkout -- <file>
git restore api/signin/.
git commit -a 'message'
git commit -m 'message'
작업이 끝난 코드의 변경 사항을 스테이징 영역에서 마지막으로 커밋 메세지와 함께 깃 저장소 영역에 저장함으로써 코드 수정(또는 개발)을 종료합니다.
git pull origin main(또는 master)
git checkout
: Switch branches or restore working tree files(브랜치를 옮기거나 작업 트리의 파일들을 복원)git switch
: Switch branchesgit restore
: Restore working tree files