Post

내가 보려고 만든 Git 명령어 정리

✅ 로컬에 있는 프로젝트를 비어있는 깃허브 레포지토리에 푸시하기

git init

프로젝트 디렉토리에서 Git 초기화

git remote add origin [원격저장소 주소]

원격 저장소(origin) 등록

git add .

변경사항 스테이지에 추가

git commit -m "first commit"

커밋 생성

git branch -M main

main 브랜치 이름 설정 (필요한 경우)

git push -u origin main

최초 push (원격 브랜치와 연결)


✅ 원격 레포에 있는 프로젝트 로컬로 가져오기

git clone [원격 저장소 주소]

해당 원격 레포지토리 전체를 clone해서 새 디렉토리 생성


✅ pull 전략 정하기

(a) merge

git config pull.rebase false

현재 브랜치에 main의 변경사항을 병합
Merge branch 'main' into feature-x 같은 병합 커밋이 생김(충돌 해결 과정을 명확히 기록할 수 있지만 커밋 히스토리가 지저분해질 수 있음)

(b) rebase

git config pull.rebase true

내 커밋들을 main 최신 커밋 뒤로 재배열

(c) ff

git config pull.ff only

main이 현재 브랜치의 부모일 경우에만 fast-forward(병합 커밋 없이 HEAD만 앞으로 당기는 것)로 처리


✨명령어 정리

🎬 Git 초기설정 및 저장소 연결

git init

현재 디렉토리를 로컬 Git 저장소가 되도록 초기화한다.
(.git이라는 숨김 폴더가 생성되어 Git이 이 폴더를 기준으로 변경사항을 추적하게 된다. 이미 존재하는 프로젝트 폴더에 Git을 연결할 때 사용한다)

git remote add origin [원격 저장소 주소]

‘origin’이라는 이름으로 원격 저장소 주소를 등록한다.

git clone [원격 저장소 주소]

해당 원격 레포지토리 전체를 clone해서 새 디렉토리를 생성한다. 통째로 다운받는 개념

✍️ 커밋 관련 명령어

git add .

현재 디렉토리 내부의 모든 변경사항을 stage한다.

git commit -m "커밋메시지"

stage된 변경사항을 큰따옴표 안의 메시지로 커밋한다.

git commit --amend

가장 최근 커밋의 메시지나 내용을 수정한다.

🌱 브랜치 관련 명령어

git branch

현재 로컬 저장소에 있는 브랜치 목록을 확인한다. 내가 어느 branch에 있는지 * 표시로 알 수 있다.

git branch -r

원격 저장소에 있는 브랜치 목록을 확인한다.

git branch -a

로컬 및 원격 저장소의 모든 브랜치를 확인한다.

git branch [브랜치명]

로컬에 새 브랜치를 생성한다.

git branch -M main

현재 브랜치 이름을 main으로 변경한다.

git checkout [브랜치명]
git switch [브랜치명]

해당 브랜치로 이동한다(둘 중 switch가 더 권장됨).

git checkout -t origin/[원격브랜치명]

원격 브랜치를 로컬로 (동일한 이름으로 생성하면서) 가져오고 해당 브랜치로 checkout한다.

📤 푸쉬 관련 명령어

git push

현재 브랜치의 상태를 원격 저장소에 푸시한다.

git push -u origin [브랜치명]

로컬 브랜치를 원격 저장소의 해당 브랜치와 연결하고 푸시한다. 최초 push 할 때만 사용하고, 이후부터는 git push만 써도 된다. git push —set —upstream origin [브랜치명]의 축약형이다.

📥 pull / fetch 관련 명령어

git pull

원격 저장소에 있는 변경사항을 로컬에 병합(pull = fetch + merge)한다. 현재 작업중인 브랜치에만 적용된다(다른 브랜치의 변경사항은 반영안됨!)

git pull origin [브랜치명]

지정한 특정 원격 브랜치의 내용을 pull해온다.

git fetch origin

origin이라는 이름의 원격저장소의 현재 정보(어떤 브랜치가 새로 생성되었는지 등등…)를 fetch한다.

git remote update

등록된 모든 원격저장소(origin 등)의 현재 정보를 fetch한다.

git merge —abort

현재 병합 중인 작업을 완전히 취소하고 pull 시도 이전 상태로 되돌린다(= pull하려다가 충돌난 거 보고 뒷걸음질 치기).

📜 로그 관련 명령어

git log —online

커밋 로그를 한줄요약 형태로 보기

git log

커밋 로그 상세보기

기타 명령어

git stash

작업 중인 변경사항을 임시로 숨긴다. 브랜치 switch 등 다른 작업에 방해받지 않도록 치울 때 쓴다.
stash된 변경사항들은 임시 저장소에 stack 형태로 저장해둔다.

git stash pop

가장 최근에 stash한 변경사항들을 다시 적용하고 stash 목록에서 제거한다.

This post is licensed under CC BY 4.0 by the author.

Trending Tags