본문 바로가기

infra

GIT 명령어

* 용어정리
origin : 원격저장소의 이름
HAED : 현재 체크아웃된 브런치 또는 커밋을 가리키는 포인터다.

* 기본 설정 변경
- 병합(Merge) 방식 설정
git config pull.rebase false

- 재정렬(Rebase) 방식 설정
git config pull.rebase true

- Fast-Forward만 허용(Fast-Forward Only):
로컬 브랜치가 원격 브랜치보다 뒤처져 있으면 가져오지만, 이력이 다를 경우 동작하지 않는다
git config pull.ff only

% 설정을 전역으로 적용하려면 --global 옵션을 추가
git config --global pull.rebase false




* 커밋 생성
- 새 git 저장소 생성
git init을 실행하면 해당 디렉토리에 .git 폴더가 생성되며, Git 저장소로 설정된다.
mkdir my_project     # 새로운 프로젝트 폴더 생성
cd my_project        # 폴더로 이동
git init            # Git 저장소 초기화

- 원격저장소 추가
git remote add origin <원격 저장소 URL>

- 원격저장소 확인
git remote -v

- 원격저장소 변경
git remote set-url origin <새로운_저장소_URL>




* 커밋방법
- 변경사항 확인
git status

- 변경사항 스테이징에 추가
git add <파일이름>
git add .

- 커밋 생성
git commit -m "메세지"

- 원격 저장소에 푸쉬
git push origin main/master

- 마지막 커밋 수정
이전 커밋을 수정할때 사용
git commit --amend -m "수정된 커밋 메시지"

- 특정 파일 제거 후 커밋
스테이징한 파일을 다시 제외할 때 사용한다.
git reset HEAD <파일 이름>

- 마지막 커밋 되돌리기
최근 커밋을 취소하고, 변경 사항을 유지한다
git reset --soft HEAD~1

- 커밋 히스토리 확인
git log --oneline




* pull 받는법
git pull origin <브런치명>

- 변경 사항을 가져오기만 하고 자동 병합은 하지 않기
이후 git merge 명령어를 수동으로 실행해야 함.
git fetch origin

- 병합 대신 리베이스(rebase) 적용
이 명령어는 원격 변경 사항을 가져온 후, 현재 브랜치의 커밋들을 최신 변경 사항 위로 재정렬함.
git pull --rebase origin <브랜치명>

- 강제 pull
로컬 변경사항을 무시하고 원격 저장소 상태로 강제 동기화 함
git fetch -all
git reset --hard origin/<브랜치명>




* 브런치 보기
- 현재 브런치 보는법
현재 체크아웃된 브랜치 이름을 출력함.
git branch --show-current

- 로컬 브랜치 목록 보기
현재 저장소의 로컬 브랜치 목록을 표시함.
git branch

- 원격 브랜치 목록 보기
원격 저장소에 있는 브랜치 목록을 표시함.
git branch -r

- 로컬및 원격 브랜치 전체 목록 보기
로컬 브랜치와 원격 브랜치를 모두 표시함.
git branch -a

- 브랜치 정보와 마지막 커밋 메시지 확인
각 브랜치의 최신 커밋 정보 및 원격 브랜치와의 연동 상태를 함께 출력함.
git branch -vv




* 헤드의 이동
- HEAD를 이전 커밋으로 이동 (detached HEAD)
git checkout <커밋 해시>
이제 HEAD가 특정 커밋(a1b2c3d)을 가리키게 되며, 브랜치를 벗어나 독립적인 상태(detached HEAD)가 된다.
이 상태에서 작업 후 새로운 브랜치를 생성할 수 있다.
git checkout -b 새로운_브랜치

- HEAD를 다시 최신 브랜치로 복구
git checkout main
git switch main

- 이전 커밋으로 이동 (soft reset)
마지막 커밋을 취소하지만, 파일 변경 내용은 유지됨.
git reset --soft HEAD~1

- 이전 커밋으로 이동 (hard reset)
마지막 커밋을 삭제하고, 변경 내용도 모두 제거됨.
git reset --hard HEAD~1

- HEAD가 특정 커밋을 가리키도록 강제 변경
이 명령어를 실행하면 HEAD가 해당 커밋을 가리키고, 이후의 모든 커밋이 사라진다.
git reset --hard <커밋 해시>

명령어 설명
HEAD 현재 커밋 (브랜치의 최신 커밋)
HEAD~1 한 단계 전의 커밋
HEAD~2 두 단계 전의 커밋
HEAD^ 바로 이전 커밋 (HEAD~1과 동일)
HEAD^^ 두 단계 이전 커밋 (HEAD~2와 동일)





* 클론 받는법
- git 저장소 클론하기
git clone <저장소 URL>

- 특정 폴더에 클론하기
git clone <저장소 URL> <폴더 이름>

- 원격 저장소 연결 확인
git remote -v

- 브런치 확인
git branch -a

- 최신 변경 사항 가져오기
git pull origin main 

반응형