반응형
Git이란?
Git은 분산 버전 관리 시스템으로 소스 코드 관리와 변경사항 추적을 위해 사용 될 수 있다. 분산 모델로 병렬 작업이 가능하고, 오프라인 상태로 로컬작업도 가능하다. 호스팅을 지원하는 서비스로 Github, Gitlab이 대표적이다.
명령어
Git init
새로운 Git 저장소를 생성
git init
Git status
Git의 branch, changed, staging, untracked 상태를 표시
git status
Git clone
Git 저장소를 복사하여 생성
git clone <Repository URL>
특정경로에 생성
git clone <Repository URL> <경로>
Git config
git user.name, user.email 설정
git config user.name "Name"
git config user.email "email@example.com"
credential 인증 유지
- cache: 15분 저장
- store: 반영구적 저장
git config credential.helper [cache|store]
Git remote
원격저장소 확인
git remote
원격저장소 연결
git remote add <원격저장소> <Repository URL>
연결된 원격저장소 제거
git remote remove <원격저장소>
Git branch
# local 브랜치 목록
git branch
# remote 브랜치 목록
git branch -r
# local + remote 브랜치 목록
git branch -a
# local 브랜치 삭제
git branch -d <local 브랜치>
# local 브랜치 강제 삭제
git branch -D <local 브랜치>
# checkout된 local 브랜치 이름 변경
git branch -m <변경할 브랜치 이름>
# checkout이 아닌 local 브랜치 이름 변경
git branch -m <local 브랜치> <변경할 브랜치 이름>
# remote 브랜치 삭제
git push <원격저장소> -d <remote 브랜치>
Git checkout
로컬브랜치 전환
git checkout <branch>
브랜치 생성 후 전환
git checkout -b <branch>
원격브랜치에서 로컬 브랜치 생성 후 전환
git checkout -b <branch> <원격저장소>/<브랜치>
원격브랜치 추적하는 로컬 브랜치 생성 후 전환
git checkout -t <원격저장소>/<브랜치>
Git add
[파일 | 디렉토리] 변경사항 스테이징 영역으로 추가
git add <파일|디렉토리>
현재 경로의 변경사항 스테이징 영역으로 추가
git add .
작업 디렉토리의 변경사항 스테이징 영역으로 추가
git add -A
Git commit
스테이징 영역 변경사항 커밋
git commit -m <커밋메시지>
Git push
- Options
- --force | -f: 강제로 원격저장소에 덮어쓰며 저장
- --force-with-lease: 로컬과 원격이 같은 커밋 위치일 경우 저장 (협업 작업에 사용)
git push <원격저장소> <브랜치>
# upstream 브랜치 설정
git push -u <원격저장소> <브랜치>
Git reset
커밋 히스토리를 초기화
- Options
- soft: 커밋내용을 스테이징에 남김
- mixed: 커밋내용을 변경사항에 남김
- hard: 커밋내용 중 tracked 파일 삭제(untracked는 변경사항에 남음)
git reset --[soft|mixed|hard]
# 특정 커밋까지 초기화
git reset <커밋ID> --[soft|mixed|hard]
Git clean
변경사항 중 추적되지 않는(untracked) 항목 삭제
- Options
- f(--force): 삭제 기본옵션
- d: 디렉토리 포함 삭제
- n: 삭제될 파일 미리보기
git clean -[f][d][n] [파일|디렉토리]
Git fetch
원격저장소(remote)의 최신내용 가져오기
git fetch [원격저장소]
Git pull
원격저장소(remote)의 최신내용 가져와서 로컬에 병합
git pull [원격저장소] [브랜치]
Git subtree
- Options
- prefix: 서브 프로젝트를 넣을 디렉토리 경로
서브트리 추가
git subtree add --prefix <디렉토리> <Repository URL> <브랜치>
서브트리 병합
git subtree merge --prefix <디렉토리> <Repository URL> <브랜치>
서브트리 분리
git subtree split --prefix <디렉토리> --branch <분리할 브랜치>
서브트리 업데이트
git subtree pull --prefix <디렉토리> <Repository URL> <브랜치>
서브트리 변경사항 푸시
git subtree push --prefix <디렉토리> <Repository URL> <브랜치>
반응형