Git 명령어

2020. 9. 10. 23:06·Git
반응형

Git이란?

Git은 분산 버전 관리 시스템으로 소스 코드 관리와 변경사항 추적을 위해 사용 될 수 있다. 분산 모델로 병렬 작업이 가능하고, 오프라인 상태로 로컬작업도 가능하다. 호스팅을 지원하는 서비스로 Github, Gitlab이 대표적이다.

 

Git init

# git 저장소 생성
git init

Git status

# git 상태(branch, changed, staging, untracked) 표시
git status

# 상세정보
git status -sb

Git clone

# Git 저장소를 복사하여 생성
git clone <Repository URL>

# 경로지정하여 생성
git clone <Repository URL> <경로>

Git config

# .git/config 설정
git config

# user.name 설정
git config user.name "Name"

# user.email 설정
git config user.email "email@example.com"

# credential.helper 설정: credential 인증 유지
## cache - 15분 저장
## store - 반영구적 저장
git config credential.helper [cache|store]

Git remote

# 연결된 원격저장소 확인
git remote

# 원격저장소 추가
git remote add <원격저장소> <Repository URL>

# 원격저장소 이름 변경
git remote rename <로컬 원격저장소> <바꾸려는 원격저장소>

# 연결된 원격저장소 제거
git remote remove <원격저장소>

Git branch

# 로컬 브랜치 목록
git branch

# 원격 브랜치 목록
git branch -r

# 로컬/원격 브랜치 목록
git branch -a

# 현재 로컬브랜치 이름변경
git branch -m <변경할 브랜치 이름>

# 로컬브랜치 이름변경
git branch -m <로컬브랜치> <변경할 브랜치 이름>

# 로컬 브랜치 안전삭제
## 현재브랜치에 병합되지 않은 커밋 존재하는 경우 거부
git branch -d <로컬브랜치>

# 로컬 브랜치 강제삭제
git branch -D <로컬브랜치>

# 원격 브랜치 참조만 제거
## 로컬에 참조된 원격브랜치에서만 제거
git branch -d <원격저장소>/<원격브랜치>

# 추적브랜치(upstream) 변경
git branch -u <원격저장소>/<원격브랜치>

# 추적브랜치 확인
git branch -vv

Git checkout

# 로컬브랜치 전환
git checkout <브랜치>

# 원격브랜치와 동일한 이름의 로컬브랜치 생성 후 전환
git checkout <원격저장소>/<브랜치>

# 로컬브랜치 생성 후 전환
git checkout -b <브랜치>

# 원격브랜치를 추적하는 로컬브랜치를 생성 후 전환
git checkout -b <branch> <원격저장소>/<branch>

Git add

# 특정 변경사항을 staging 영역으로
git add <파일|디렉토리>

# 모든 변경사항(추가/수정) staging 영역으로
git add .

# 변경사항(추가/수정/삭재) staging 영역으로
git add -A

# 변경사항(수정/삭제) staging 영역으로
git add -u

Git commit

# 스테이징 영역 변경사항 커밋
git commit -m <커밋메시지>

Git push

# 현재 로컬브랜치를 원격브랜치로 푸시
git push

# 로컬브랜치를 원격브랜치로 푸시
git push <원격저장소> <로컬브랜치>

# 강제 푸시(원격 브랜치 보호 안함, 히스토리 삭제)
git push --force

# 강제 푸시(원격 브랜치 보호, 히스토리 삭제)
git push --force-with-lease

# upstream 브랜치 설정
git push -u <원격저장소> <원격브랜치>

# 원격브랜치 강제삭제
git push <원격저장소> -d <원격브랜치>

Git log

# git 로그 출력
git log

# commit ID, 타이틀 한 줄로 출력
git log --onelie

Git reset

  • --soft: 커밋내용을 스테이징에 남김
  • --mixed: 커밋내용을 변경사항에 남김
  • --hard: 커밋내용 중 tracked 파일 삭제(untracked는 변경사항에 남음)
# 커밋 히스토리를 초기화
git reset --[soft|mixed|hard]

# 특정 커밋까지 초기화
git reset <커밋ID> --[soft|mixed|hard]

Git clean

  • -f(--force): 삭제 기본옵션
  • -d: 디렉토리 포함 삭제
  • -n: 삭제될 파일 미리보기
# 변경사항 중 추적되지 않는(untracked) 항목 삭제
git clean -[f][d][n] [파일|디렉토리]

Git merge

# <브랜치>로 현재 브랜치를 병합(merge commit 생성)
git merge <브랜치>

Git rebase

# 특정 브랜치를 대상 브랜치의 최신 커밋 이후로 재배열 한다.
git rebase <브랜치>

Git fetch

# 원격저장소(remote)의 최신내용 가져오기
git fetch [원격저장소]

Git pull

# 원격저장소(remote)의 최신내용 가져와서 로컬에 병합
git pull [원격저장소] [브랜치]

Git subtree

  • --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> <브랜치>

 

반응형
저작자표시 비영리 변경금지 (새창열림)

'Git' 카테고리의 다른 글

Git Tracking 파일명 대소문자 변경하기  (0) 2025.06.26
'Git' 카테고리의 다른 글
  • Git Tracking 파일명 대소문자 변경하기
helperwoo
helperwoo
\ೕ( ・ㅂ・)و /
  • helperwoo
    WooLog
    helperwoo
  • 전체
    오늘
    어제
    • All (55)
      • Web (25)
        • PHP (6)
        • Java (5)
        • Javascript (8)
        • Laravel (2)
        • Spring Boot (0)
        • React.js (1)
        • Electron.js (1)
        • Vue.js (1)
        • Nest.js (1)
      • Mobile (2)
        • Flutter (2)
      • SQL (1)
        • MySQL (4)
      • Docker (6)
      • Server (7)
      • Git (2)
      • Tool (3)
      • AI (2)
      • Tip (3)
      • Log (0)
  • 블로그 메뉴

    • 링크

      • Github
    • 공지사항

    • 인기 글

    • 태그

      CLI
      엘리스
      nginx
      CTE
      Laravel
      ollama
      프로그래머스
      데이터베이스
      DB연동
      image
      docker
      Compose
      websocket
      챌린지
      frankenphp
      git
      http
      ignorecase
      flutter
      php
      apache
      deepseek
      vscode
      코드
      JavaScript
      with
      dart
      알고리즘
      recursive
      MYSQL
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    helperwoo
    Git 명령어
    상단으로

    티스토리툴바