Git 기본 명령어 정리 1

Somyeong Jeon·2022년 1월 24일
13

Git

목록 보기
1/2
post-thumbnail

🙌🏻 Intro

안녕하세요 😃
이번 글은 git 에서 자주 쓰이는 명령어들에 대해 알아보는 첫 번째 글이에요!

💡  ctrl + f 혹은 cmd + f 를 이용하시면 찾으시는 명령어를 빠르게 보실 수 있어요.

📇 init

👉🏻  init은 '초기화' 라는 뜻인데요, git과 상관없던 디렉토리를 git으로 관리할 수 있게 해주는 명령어입니다.

git init

git이 관리하는 로컬 저장소로 만들 경로에서 위 명령어를 인자 없이 입력하면 됩니다. 만약 /Users/username/Desktop 경로에서 git init을 하게 되면, Desktop을 git에서 관리하게 됩니다.


🔗 remote

👉🏻  remote를 설정하는 것은 원격 저장소와 로컬 저장소를 연결 시켜주는 일입니다.
remote를 설정해주면, 로컬 저장소에서 원격 저장소로 변경 사항을 보낼 수 있게 됩니다.

💡  처음에 많이 들 헷갈려하시는 부분이 로컬 저장소와 원격 저장소의 관계입니다.
구글 드라이브를 생각하시면 쉽게 이해할 수 있습니다.
로컬 저장소는 컴퓨터의 저장 공간이고, 원격 저장소는 구글 드라이브 같은 저장소입니다.
구글 드라이브에 a라는 폴더를 올려두었다고 해봅시다.
내 컴퓨터에서 아무리 a폴더를 수정해도 구글 드라이브의 a폴더는 변하지 않습니다.
구글 드라이브에 변경된 a폴더를 다시 올렸을 때 구글 드라이브의 a폴더가 변경됩니다.

🙌🏻  git에서 로컬 저장소와 원격 저장소도 같은 개념입니다.
로컬 저장소에서 아무리 파일을 변경하여도 원격 저장소는 변하지 않습니다.
로컬 저장소에서 원격 저장소로 변경 사항을 전달해주어야만 원격 저장소의 내용이 변경되는 것입니다.

git remote

등록된 원격 저장소의 별명을 보여줍니다.

git remote -v

등록된 원격 저장소의 별명과 URL을 보여줍니다.

git remote add origin "URL"

URL이 가리키는 원격 저장소를 origin이라는 별명을 부여하고 등록합니다.
이 때 origin을 많이 쓰지만, 다른 별명을 부여하셔도 상관없습니다.

git remote remove origin

origin이라는 별명을 remote에서 삭제합니다.
만약 URL을 잘못 적으셨다면, 이 명령어를 통해 삭제 후 다시 등록해주시면 됩니다.


👥 clone

👉🏻  clone은 '복제'라는 뜻인데요, 말 그대로 원격 저장소를 그대로 로컬 저장소에 복제하는 것입니다.

git clone [URL]

URL이 가리키는 원격 저장소를 현재 경로에 복제합니다.
이 때, init을 해줄 필요도, remote를 설정해줄 필요도 없습니다.
받아온 원격 저장소의 URL은 origin 이라는 별명으로 remote에 저장됩니다.

git clone [URL] [복제할 경로 혹은 디렉토리 이름]

위와 같이 clone을 하면, URL 뒤에 지정해준 경로 혹은 이름에 복제할 수 있습니다.


📩 add

👉🏻   git add는 working directory 상의 변경된 내용을 staging area에 추가(add) 하기 위해서 사용하는 명령어입니다. 뒤에서 알아볼 git commit과는 다르게, git add명령어는 아무리 많이 입력해도 변경 이력에는 영향을 주지 않습니다.

git add [파일이름 혹은 경로]

파일이름을 입력할 경우 현재 디렉토리의 해당 파일을 staging 영역에 추가합니다.
경로를 입력하여 상위나 하위 디렉토리의 파일을 staging 영역에 추가할 수도 있습니다.

git add [파일이름 혹은 경로] [파일이름 혹은 경로]

위와 같이 띄어쓰기로 구분하면, 한번에 여러 파일을 지정하여 staging 영역에 추가할 수 있습니다.

git add *.html

html 형태의 모든 파일을 staged 상태로 만듭니다.

git add .

현재 디렉토리의 모든 파일을 staging 영역에 추가합니다.

git add -A

작업 디렉토리의 모든 파일을 staging 영역에 추가합니다.
현재 디렉토리의 하위 디렉토리의 파일만 staging 영역에 추가하는 git add .와는 다르게,
git add -A는 프로젝트의 어느 디렉토리에 있든 모든 파일을 staging 영역에 추가해줍니다.


📨 commit

👉🏻  git commit은 지금까지 staging 영역에 모아둔 변경사항들을 기록하는 명령어입니다.

git commit

위 명령어를 입력하면, 커밋 메세지를 입력하는 창으로 넘어갑니다.
한 줄로 커밋 메세지를 입력하기 힘들 경우 사용합니다.
i를 눌러 insert 모드로 변경한 후, 커밋 메세지를 입력합니다.
메세지를 다 쓴 후에는 esc를 누른 후shift + Z + Z를 눌러 저장 후 텍스트 편집기에서 나갈 수 있습니다.
만약 커밋 메세지를 입력하지 않는다면, 커밋이 중단됩니다.

git commit –m "커밋 메세지"

-m 옵션을 사용하면, 커밋 메세지를 바로 적어 커밋 할 수 있습니다.

-m 옵션을 써서 커밋 메세지를 입력하는 편이 빠르고 간단하기 때문에,
긴 커밋 메세지를 쓸 경우를 제외하고는 -m 옵션을 사용하는 것을 추천합니다.

git commit --amend

이 명령어는 바로 앞 커밋에 이번 커밋을 덮어쓰는 명령어입니다.
이미 커밋을 했는데, 추가할 사항이 있을 때 혹은 커밋 메세지를 수정할 때 쓰입니다.

인덱스에 파일을 등록하지 않은 상태(staging 을 안한 상태, add를 안 한 상태)에서
--amend 옵션을 지정하고 다시 커밋 하면, 커밋 메세지를 수정할 수 있습니다.


📤 push

👉🏻  push는 로컬 저장소에서 commit한 내역 들을 원격 저장소에 보내는 작업입니다.
아무리 commit을 많이 해주어도 push를 하지 않으면,
원격 저장소에서는 로컬 저장소에서 어떤 변경 사항이 있는지 알 수 없습니다.

git push [remote 별명] [branch 명]

push를 할 때에는 원격 저장소와 브렌치를 지정해주어야 합니다.
git push origin main 명령어를 입력하면,
origin이 가리키는 원격 저장소의 main 브렌치에 변경 사항을 보내주는 것이 됩니다.

💡   push를 할 때에는 신중해야 합니다.
만약 브렌치를 새로 파서 작업하지 않고, main 브렌치에 push를 할 때에는 되돌리기 힘드니 더욱 신중해야 합니다.


📥 pull

👉🏻   pull은 원격 저장소의 변경 사항을 가져오는 것입니다. push와는 반대의 개념입니다.
👉🏻   팀원과 협업을 하는 상황을 생각해봅시다.
팀원이 push를 하여 변경 사항이 원격 저장소에 저장되었을 경우에
나의 로컬 저장소는 원격 저장소의 변경 사항이 적용되지 않습니다.
이 때 원격 저장소의 변경 사항을 받지 않고 push를 하게 되면, 충돌이 일어나게 됩니다.

git pull [remote 별명] [branch 명]

지정한 원격 저장소와 브렌치의 변경 사항을 가져와 로컬 저장소에 저장합니다.


👋🏻 Outro

이번 글에서는 git을 사용할 때 가장 많이 사용하고, 기본적인 명령어들을 다루어 보았어요. 다음 글에서는 git 명령어들을 빠르고 편리하게 입력할 수 있는 alias에 대해 알아볼게요!

profile
알고보니 재미있는 개발 💻

0개의 댓글