[Tip] Git 필수 명령어를 알아보자
Git 이란?
무료 오픈소스 DVCS(Distributed Version Control Systems 분산 버전 관리) 로
snapshot과 로컬 저장소를 사용합니다.
snapshot이란 파일들을 각 버전의 snapshot으로 기록하는 방식으로
달라지지 않은 파일은 이전 버전의 링크만 저장합니다.
- git init
로컬저장소로 만들 디렉토리로 이동한 후 로컬저장소를 생성합니다.
git init 명령어 실행 시 기본적으로는 원격저장소가 존재하지 않습니다.
cd [로컬저장소로 만들 디렉토리 경로]
git init
- git remote add <저장소이름> <저장소주소>
자신의 원격저장소를 추가합니다.
저장소이름은 임의로 설정 가능하며 기본적으로는 origin을 사용합니다.
git remote add origin http://github.com/[저장소 주소]
- git clone <저장소주소>
원하는 폴더위치에 기존의 다른 저장소를 가져와서 사용합니다.
git clone https://github.com/[가져올 저장소 주소]
- git status
현재 stage 상태를 확인합니다.
git status
ex) 상태를 확인해보면 다음 예시와 같은 결과가 나옵니다.
만약 main.c 파일이 수정된 상태라면 다음과 같은 결과가 나옵니다.
파일의 상태의 종류에는 아래와 같은 여러 종류가 있는데요,
- Tracked : 관리대상
- Modified : 수정됨
- Unmodified : 수정안됨
- Staged : 커밋 대상
- Untracked : 관리대상 아님
처음 파일을 추가(생성) 했을 때에는 기본 Untracked 상태가 되며
처음 clone 시에는 모든 파일이 Tracked, Unmodified 상태가 됩니다.
- git add <파일이름>
원하는 파일을 커밋 대상에 추가합니다.
git add [파일이름]
ex) 커밋 대상에 추가한 뒤 git status로 상태를 확인해보면 다음 예시와 같은 결과가 나옵니다.
(다음 예시는 git add main.c를 한 상황입니다.)
- git commit -a -m "<커밋메세지>"
커밋 대상에 추가된 파일과 수정된 파일들 모두를 커밋합니다.
git commit -a -m "first commit"
-m은 메세지 입력 옵션이고 -a는 modified 상태의 모든 파일을 커밋하는 옵션입니다.
만약 커밋 대상 파일들만 커밋하려면 -a를 제외한 아래의 명령어를 입력하면 됩니다.
git commit -m "first commit"
메세지를 입력하기 위해서는 -m 옵션과 함께 쌍따옴표 안에 커밋 메세지 내용을 작성해주시면 됩니다.
- git pull <저장소이름>
원격저장소의 모든 데이터를 가져와서 원격저장소와 로컬저장소 데이터를 모두 합칩니다.
git pull origin
- git push <저장소이름> <브랜치이름>
원격저장소에 데이터(특정 브랜치)를 넣습니다.
git에서의 브랜치는 커밋 사이를 돌아다닐 수 있는 포인터와 같다고 생각하시면 됩니다.
브랜치를 사용하면 코드를 여러 개로 복사하여 독립으로 개발이 가능합니다.
브랜치이름은 임의로 설정 가능하며 기본적으로는 main을 사용합니다.
git push origin main
여기 까지가 필수 명령어들 입니다.
만약 git을 처음 사용해보신다면 형광펜으로 칠해놓은 부분만 따라하시면
정상적으로 commit과 push가 이루어질 것입니다. :)
추가적인 명령어들
- git diff
커밋된 파일과 Modified 파일 사이의 변경사항을 확인할 수 있습니다.
ex) 다음과 같이 +와 -를 사용하여 변경사항이 뜹니다.
- git log --oneline --graph --all
커밋 히스토리를 조회합니다. 위의 옵션을 사용하여 조회하는 것을 추천 드립니다.
--online : 각 커밋을 한 줄로 표시하는 옵션입니다.
--graph : 브랜치들을 tree형태로 표시하는 옵션입니다.
--all : 모든 브랜치를 표시하는 옵션입니다.
- git branch <브랜치이름>
새로운 브랜치를 생성합니다.
새로 생성된 브랜치는 현재 작업중인 마지막 커밋을 가리킵니다.
- git branch -d <브랜치이름>
해당 브랜치를 삭제합니다.
- git checkout <브랜치이름>
로컬저장소에서 해당 브랜치로 HEAD 포인터를 이동시킵니다.
커밋하게 되면 HEAD 포인터가 가리키는 브랜치에 커밋됩니다.
- git checkout -b <브랜치이름>
새로운 브랜치를 생성함과 동시에 해당 브랜치로 HEAD 포인터를 이동시킵니다.
- git merge <합칠브랜치이름>
나뉘어져있던 여러 브랜치를 하나로 합칩니다.
- git commit --amend
파일을 빼먹었거나 커밋 메세지를 수정하고 싶을 때 이전의 커밋을 덮어씌웁니다.
이상으로 git 명령어 포스팅을 마치겠습니다. :>