본문 바로가기

프로그래밍/기타

[Git]Git 명령어 정리

반응형

간단하게 기본적인 git 명령어들을 정리해보겠습니다.

다음 명령어들은 주로 Source Tree를 이용해서 작업을 할 때 유용한 명령어를 위주로 정리하였습니다.

clone:

새 디렉터리에 repository을 복사한다.

git hub에서 서버의 프로젝트를 처음 내려받을 때 사용한다.

저장소의 내용을 다운로드 받고 자동으로 init작업도 한다.

기본 구조

# git clone (원격 저장소 URL)

# git clone -b (브랜치 명) (원격 저장소 URL)

init:

새 GIt 저장소를 생성하거나 기존 저장소 초기화

기본 구조

# git init

add:

내 컴퓨터에서 작접한 파일들을 스테이지(인덱스)에 추가

커밋 전 원하는 파일들을 묶는 행위

commit:

스테이지에 추가된 파일들을 내 컴퓨터에 저장하는 일

add로 스테이지에 추가한 내용들을 확정하는 일

※ 커밋이전 확정본에 대한 설명을 '자세히' 기입하는 습관을 가지자

push:

내 컴퓨터에 저장된 커밋들을 원격 저장소로 업로드 (협업)

기존에 있던 원격 저장소에 복제한 것이 아니라면 원격 서버의 주소를 입력한다.

checkout:

내가 사용할 브랜치를 지정해주는 명령어

기본 구조

# git checkout (branch)

# git checkout -b (branch) // 브랜치 작성과 체크아웃을 한번에

branch:

기능 변경을 하고 싶을 때, 안전하게 격리된 공간에서 작업할 공간을 생성하는 명령어

branch의 생성 및 제거, 확인 등의 기능을 수행한다. (스파게티 코드 방지)

다른 가지(branch)에서 개발을 진행하다 완료시 master가지로 돌아와 병합을 수행한다.

기본 구조

# git branch (branch) // 로컬에 (branch)이름의 branch를 생성한다.

# git branch -d (branch) // branch 삭제

# git branch -m (branch1) (branch2) // branch1 의 이름을 branch2로 변경한다.

# git branch -l // 로컬 저장소의 branch정보를 보여준다.

# git branch -r // 리모트 저장소의 branch정보를 보여준다.

# git branch -a // 로컬/리모트 저장소의 모든 branch정보를 보여준다.

merge:

한 브랜치의 내용을 다른 브랜치에 반영한다.

기본 구조

# git merge (commit) // commit이 HEAD가 가리키는 브랜치에 병합된다.

pull:

서버의 최신 내용을 가져올 경우 사용

pull = fetch + merge

예시

# git pull origin master // origin의 내용이 master로 복사

push:

- 커밋을 되돌리는 방법. 쉽지만 기존 작업한 커밋의 내용이 삭제된다

- reset이후 강제 푸쉬(push --force)를 적용해야 한다.

예시

# git reset --hard HEAD~~

revert:

- 커밋을 되돌리는 방법. 기존 작업한 커밋의 내용은 유지된다.

- 충돌발생 가능성이 높고, 다소 어려운 편

- 여러 개의 커밋을 되돌리고 싶은 경우, 최신부터 순서대로 revert를 반복 적용해야 충돌을 줄일 수 있음

- sourceTree의 커밋 되돌리기

예시

# git reset --hard HEAD~~

rebase:

- merge처럼 두 브랜치의 내용을 하나로 합칠 때 사용. merge보다 트리가 깔끔하게 유지된다.

- 충돌 가능성이 높다.

※기타

source tree의 코드뭉치 버리기

병합시 충돌을 피하기 위해서 브랜치에서 새 파일을 만들어 작업하는 방법이 있다

스태시 - 임시 저장 공간에 현재 작업 내용을 저장한다.

반응형