[Git] Git 명령어

2024. 6. 14. 13:03·Tools/Git

git init - git 저장소 생성

  • git 초기화
  • git으로 버전관리를 할 경로에서 사용하며, .git 폴더가 생성됨

→ 기존 디렉토리 사용

  • Git을 사용할 프로젝트 폴더로 이동 후 아래의 명령어 실행
$ git init

ex) elice라는 폴더를 git 저장소로 만들려면 수행해야할 명령어는?

  • c:/Users/madHatter
  • elice 폴더는 c:/Users/madHatter/teaparty/elice
    1. cd 명령어로 elice 폴더로 들어가서 git init 실행
    2. git init ./teaparty/elice 실행

git status - staging 상태 확인

  • 어떤 파일이 변경되었는지 등의 파일의 상태를 확인할 수 있음

git add -

  • 파일의 변경 내용을 스테이징 영역(staging area)에 추가하기 위해 사용하는 명령어
# 모든 변경점 추가
$ git add -A

# 현재 경로의 모든 변경점 추가
$ git add .

# README.md 파일만 추가
$ git add README.md

git commit - 변경 내용 저장

# 메시지와 함께 커밋
$ git commit -m 'First Commit'

# 신규 파일을 제외한 변경사항을 Staging 후 커밋
$ git commit -a

# 이전 커밋 변경
$ git commit --amend

git log

  • commit 목록 볼 수 있음
# --stat : 어떤 파일이 commit에서 수정되고 변경되었는지, 파일 내 라인이 추가되거나 삭제되었는지 확인
$ git log --stat

# branch 그래프를 추가하여 보기
$ git log --graph

# 모든 branch 보기
$ git log --all

# commit 메시지 제목만 한줄로 보기
$ git log --pretty=online

# -p, --patch : 각 commit의 수정 결과를 보여주는 diff와 동일
# -n : 상위 n개의 commit만 보여줌
$ git log -p -2

# -S : 코드에서 추가되거나 제거된 내용 중 특정 텍스트(funtion_name)가 포함되어 있는지 검사
$ git log -S function_name

git rm

  • 파일을 지우거나 스테이지에서 해제할 때 사용합니다.
# 파일 삭제
$ git rm README.md

# README.md 파일을 추적되지 않은 상태로 만듦
$ git rm --cached README.md

git show

  • commit 의 상세 정보를 확인합니다.
# 현재 branch의 가장 최근 commit 정보를 확인
$ git show

# 특정 commit 정보를 확인
$ git show [commit 해시값]

# 특정 branch의 가장 최근 commit 정보를 확인
$ git show [branch 명]

git reset HEAD [file]

  • commit 을 취소할 수 있습니다.
# commit을 취소하고 해당 파일들은 스테이징 영역에 보존
$ git reset --soft HEAD^

# commit을 취소하고 해당 파일들은 Unstaging
$ git reset --mixed HEAD^
$ git reset HEAD^

# commit을 취소하고 해당 파일들의 변경점 삭제
$ git reset --hard HEAD^
  • push를 취소할 수 있습니다.
$ git reset HEAD^
$ git push -f origin 브랜치명
$ git pull

git remote

  • 원격 저장소(remote repository)를 관리하는 명령어 입니다.
# 설정된 원격 저장소 보기
$ git remote -v

# 원격 저장소 이름 변경 (origin에서 git_test로 변경)
$ git remote rename origin git_test

# test 라는 이름으로 원격 저장소 추가하기
$ git remote add test <https://github.com/test/test>

git branch

  • branch에 관련한 명령어 입니다.
# 로컬 branch 목록 확인
$ git branch
# 원격 저장소를 포함한 모든 branch 목록 확인
$ git branch -
# test 라는 branch 생성하기
$ git branch test
# test 로컬 branch를 origin이라는 원격 저장소의 test branch에 연결
$ git branch --set-upstream-to=origin/test test
# test branch 삭제
$ git branch -d test
# test branch 강제 삭제
$ git branch -D test

git checkout

  • branch를 변경하고 워킹 트리(Working tree)에서 변경점을 복원하는 명령어 입니다.
# test branch로 변경하기
$ git checkout test
# test2 라는 branch를 새로 생성하고 test2 branch로 변경하기
$ git checkout -b test2
# Unstaged 상태의 파일을 원래대로 되돌림
$ git checkout -- [파일명]
# Unstaged 상태의 현재 경로의 모든 파일을 원래대로 되돌림
$ git checkout -- .

git fetch

  • 원격 저장소(remote repository)의 데이터를 가져옵니다. pull 로 병합하기 전에 어떤 변경점이 있나 살펴볼 때 사용하기 좋습니다.
# origin 이라는 원격 저장소의 데이터를 가져옴
$ git fetch origin
# 모든 원격 저장소의 데이터를 가져옴
$ git fetch --all
# 원격 저장소에서 삭제된 branch를 로컬에서도 삭제
$ git fetch --prune

git pull

  • 원격 저장소(remote repository)의 데이터를 가져온 후 로컬 branch에 병합
# git fetch --all && git pull 과 같습니다
$ git pull --all

git push

  • 원격 저장소(remote repository)에 코드 변경분을 업로드합니다.
# 기본 사용법
$ git push [저장소명] [branch]
# 최초 1회 저장소, branch 지정. 이 후, 생략 가능
$ git push -u [저장소명] [branch]
# 로컬에서 생성한 branch를 push
$ git push --set-upstream [저장소명] [branch]

git merge

  • 현재 브랜치를 특정 브랜치의 소스와 병합
# master branch를 병합
git merge master
# 병합 충돌(Conflict) 발생 시 취소
git merge --abort
# 공백으로 인한 병합 충돌을 무시하고 병합
git merge -Xignore-all-space

git clone

  • 기존의 git repository를 복사
$ git clone <https://gitlab.com/group/project>

$ git remote add origin <https://gitlab.com/group/project>
저작자표시 비영리 변경금지 (새창열림)

'Tools > Git' 카테고리의 다른 글

[Git] Git 프로젝트 올리기  (0) 2024.06.14
[Git] GitLab  (0) 2024.06.14
[Git] Git 설치  (0) 2024.06.14
[Git] Git이란?  (0) 2024.06.14
[Git] 이미 Push한 커밋 수정하기  (0) 2023.09.30
'Tools/Git' 카테고리의 다른 글
  • [Git] Git 프로젝트 올리기
  • [Git] GitLab
  • [Git] Git 설치
  • [Git] Git이란?
woojin._.
woojin._.
여러가지 개발을 해보며 발생하는 이야기들에 대한 블로그입니다:)
  • woojin._.
    Jin's Dev Story
    woojin._.
  • 전체
    오늘
    어제
    • 분류 전체보기 (829)
      • Tools (25)
        • eGovFrame (3)
        • GeoServer (3)
        • QGIS (2)
        • LabelImg (2)
        • Git (6)
        • GitHub (1)
        • Eclipse (7)
        • Visual Studio (1)
      • Web & Android (121)
        • SpringBoot (37)
        • Three.js (2)
        • Spring Data JPA (9)
        • 스프링 부트 쇼핑몰 프로젝트 with JPA (25)
        • Thymeleaf (4)
        • Spring Security (15)
        • Flutter (29)
      • Programming Language (61)
        • JAVA (27)
        • JavaScript (14)
        • Dart (2)
        • Python (15)
        • PHP (3)
      • Database (43)
        • PostgreSQL (32)
        • MYSQL (7)
        • Oracle (3)
        • MSSQL (1)
      • SERVER (17)
        • TCP_IP (3)
        • 리눅스 (7)
        • AWS (7)
      • Coding Test (445)
        • 백준[JAVA] (108)
        • 프로그래머스[JAVA] (260)
        • 알고리즘 고득점 Kit[JAVA] (3)
        • SQL 고득점 Kit[ORACLE] (74)
      • CS 지식 (49)
        • [자료구조] (14)
        • [네트워크] (12)
        • [데이터베이스] (10)
        • [알고리즘] (9)
        • [운영체제] (4)
      • 기타 (6)
      • 자격증 & 공부 (62)
        • 정보처리기사 (2)
        • SQLD (6)
        • 네트워크관리사 2급 (5)
        • 리눅스마스터 1급 (44)
        • 리눅스마스터 2급 (1)
        • ISTQB (3)
        • 시스템보안 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 인기 글

  • 태그

    프로그래머스
    Flutter
    baekjoon
    postgresql
    리눅스마스터 1급
    리눅스
    spring
    스프링부트
    DB
    백준
    Oracle
    Spring Security
    programmers
    python
    스프링
    시큐리티
    springboot
    Linux
    Java
    JPA
    pcce 기출문제
    리눅스마스터
    자바
    플러터
    CS지식
    데이터
    CS
    스프링 부트 쇼핑몰 프로젝트 with JPA
    backjoon
    데이터베이스
  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
woojin._.
[Git] Git 명령어
상단으로

티스토리툴바