깃 명령어 모음집

김창회·2021년 1월 22일
2

목록 보기
1/1
post-thumbnail
post-custom-banner

GIT

깃의 커맨드는 개발하는 데 있어 필수적인 요소이지요

가장 기본적 명령어부터 실제로도 사용할만한 다양한 명령어들을 알아보겠습니다.

시작하기

git init

git init은 해당 디렉토리를 로컬 깃 저장소로 등록해줍니다.
이 명령어를 친 순간부터 해당 디렉토리에서는 깃 명령어를 사용할 수 있게 됩니다.

rm -r .git

git init으로 저장소를 등록했다면 그 반대로 깃 저장소 취소 명령어도 있어야겠죠.
rm -r .git 명령어는 깃 저장소 등록을 취소할 수 있습니다.

git remote add origin <저장소URL>

이 경우 깃 저장소에 레포지토리를 연결하는 경우 사용합니다.
뒤에 적힌 저장소 URL을 origin 원격 저장소로 추가합니다
origin이 아닌 다른 저장소도 명명이 가능하기 때문에 fork시, upstream 같은 저장소로도 저장합니다.

git remote add origin https://github.com/유저아이디/레포지토리명.git

git remote -v

현재 추가된 원격 저장소 목록을 확인합니다.
remote 후 잘 추가되었는지 확인하고자 사용합니다.

git clone <저장소URL>

git remote add origin 과 같은 맥락의 명령어입니다.
하지만 이 명령어는 git remote add origin와 달리 레포지토리의 파일까지 복제합니다.
(물론 저장소도 추가됩니다.)

git remote remove <원격저장소>

remote로 저장소를 만들었다면 삭제하는 기능도 물론 필요합니다.
remove -v로 확인한 결과 origin이란 저장소가 있고, 원하는 원격 저장소가 아니라면

다음과 같은 명령어로 삭제할 수 있습니다.

git remote remove origin

파일 스테이징 및 커밋

git add <파일명> or git add .

git add는 파일을 스테이지에 올립니다.
스테이지란 변경된 파일들을 추적하고 저장소에 커밋 할 수 있게끔 예약하는 공간입니다.
git add <파일명>으로 원하는 파일을 스테이지에 올리거나,
git add . 로 모든 파일을 스테이지에 올립니다.

git commit -m "커밋 메시지"

git commit 명령어는 말 그대로 커밋을 합니다.
스테이지에 올라가 있는 파일들을 커밋합니다.

git commit -m "fix : 수정"

커밋 메시지는 대개 위와 같은 식으로 커밋 컨벤션을 이용해 사용합니다.

git commit -am "커밋 메시지"

git add와 commit을 합친 명령어도 존재합니다.
git commit -am "" 을 사용하면 git add .와 git commit -m ""이 동시에 진행됩니다.

git add 삭제

git add로 스테이지에 올린 파일을 가끔은 없애고 싶을 때가 있을 겁니다.
그럴 땐 git reset을 사용하면 됩니다.

git reset

만약 원하는 파일 하나만 제거하고 싶다면

git reset HEAD src/components/...js

위처럼 상세한 경로와 함께 제거해 주시면 됩니다.

git commit 삭제

만약 commit을 삭제하고 싶은 경우도 있을 겁니다.

그럴 땐

git reset HEAD^

위의 명령어를 사용하면 됩니다.

워킹 디렉토리에서까지 삭제할 지, 스테이지 파일까지만 삭제할 지는
유저의 의도에 따라 달라질 수 있습니다.
더 자세한건 이 페이지를 참고하면 좋을 것 같습니다.

git push 역시 git reset 명령어를 사용하면 삭제하거나 되돌리기가 가능합니다.

git commit -amend

사람은 으레 그렇듯 실수하기 마련입니다.
커밋 메시지를 실수로 잘못 입력했을 때 되돌릴 수 있는 기능이 있습니다.
git commit -amend를 사용하면 커밋 메세지를 수정할 수 있습니다.

git push <원격저장소> <브랜치명>

git push는 git add로 스테이지하고, git commit으로 커밋한 파일들을 원하는 저장소의 브랜치에 푸쉬해 해당 저장소의 브랜치가 갱신되도록 합니다.

git push origin master

origin이란 저장소의, master란 브랜치에 푸쉬하도록 합니다.

브랜치 생성

git branch

현재 해당하는 저장소에서 생성되어있는 브랜치들을 확인합니다.
가장 기본은 master 혹은 main 브랜치 입니다.

git branch <브랜치명>

원하는 브랜치를 생성합니다.

git branch -d <브랜치명>

원하는 브랜치를 삭제합니다.

git checkout <브랜치명>

원하는 브랜치로 이동합니다.

git checkout -b <브랜치>

원하는 브랜치를 생성함과 동시에 해당하는 브랜치로 바로 이동합니다.

병합

git merge

git merge는 서로 다른 브랜치들을 병합하고자 할 때 사용합니다.

만약 git branch로 새로운 브랜치인 feat를 생성했고
본래 갖고 있었던 master 브랜치가 있다고 가정해 보겠습니다.
feat 브랜치에서 기능 개발이 끝나서 이제 master 브랜치에 병합을 해야합니다.

아래와 같이 할 수 있습니다.

git checkout master
git merge feat

git merge --squash

사실 병합에는 단순한 git merge 이외에 더 다양한 방법이 있습니다.
git merge --squash는 git merge에서 지목한 브런치의 커밋 이력을 하나로 만들어 병합합니다.

git checkout master
git merge --squash feat

feat 브런치의 커밋 이력들이 하나로 만들어져 master에 병합됩니다.

git cherry-pick

앞서 살펴봤던 git merge는 브런치 간 전체를 합치는 경우에 사용합니다.
하지만 가끔은 하나의 커밋만 합칠 필요가 있습니다.
예를들어 아직 준비가 덜 되거나 반영해야할 상황일 때입니다.

이때 git cherry-pick을 사용합니다.

실제 운영 중인 master 브랜치가 있고 그 다음 버전을 만들고 있는 dev 브랜치가 있다고 가정해 보겠습니다.

운영 중 급하게 변경해야 해서, master 브랜치에 변경사항을 커밋 했다고 쳤을 때,
다음 버전을 준비 중인 dev 브랜치에서도 master 브랜치의 커밋을 가져와야 합니다.

이때 git cherry-pick을 사용하면 됩니다.

git cherry-pick <커밋명>

커밋명은 git log --pretty=oneline로 깔끔하게 불러올 수 있습니다.

만약 범위로 커밋들을 불러오려면

git cherry-pick <커밋명>^..<커밋명>

여러 개의 커밋들을 나열해 불러오려면

git cherry-pick <파일명> <파일명>

위와 같이 사용하면 됩니다.

자세한 설명은 이곳이나 이곳을 참고하면 좋을 것 같습니다.


profile
프론트엔드 개발자
post-custom-banner

0개의 댓글