Git 기초

2024. 6. 13. 15:22· Git
목차
  1. 주요 개념
  2. 기본 명령어
  3. Git 설정
  4. 저장소 초기화
  5. 파일 상태 확인
  6. 파일 추가 및 커밋
  7. 브랜치
  8. 원격 저장소
  9. 병합
  10. 로그
  11. 기타 명령어
반응형

어느정도 Git을 사용할 수 있지만, 최근에 시작한 프로젝트에서 git flow 전략을 사용하기위해 간략하게 git 기초를 정리하고자 한다.

 

Git은 분산 버전 관리 시스템으로, 소프트웨어 개발에서 파일의 변경 내역을 관리하고 협업을 쉽게 할 수 있도록 도와준다. Git의 주요 개념과 기본 사용법을 알아보자.

 

주요 개념

 

1. 저장소(Repository)

  • 모든 파일과 그 파일의 변경 이력을 저장하는 곳
  • 로컬저장소(자신의 컴퓨터)와 원격 저장소(서버에 저장)가 있음

 

2. 커밋Commit)

  • 파일의 변경 사항의 하나의 단위로 묶어 기록하는 것
  • 각 커밋에는 고유한 식별자(SHA-1 해시)가 부여, 누가 언제 어떤 변경을 했는지에 대한 정보가 포함됨

 

3. 브랜지(Branch)

  • 여러 개의 독립적인 작업 흐름을 관리할 수 있게 해줌
  • 기본적으로 main, master 브랜치가 있고, 새로운 기능을 개발하거나 버그를 수정할 때는 새로운 브랜치를 만들어 작업함

 

4. 머지(Merge)

  • 한 브랜치에서의 변경 사항을 다른 브랜치에 반영하는 작업
  • 머지 충돌이 발생할 수 있으며, 충돌을 해결해야 함

 

5. 풀(Pull)

  • 원격 저장소의 변경 사항을 로컬 저장소에 가져오는 작업

 

6. 푸시(Push)

  • 로컬 저장소의 변경 사항을 원격 저장소에 반영하는 작업

 

 

기본 명령어

 

Git 설정

# 사용자 이름 설정
git config --global user.name "사용자 이름"

# 사용자 이메일 설정
git config --global user.email "사용자 이메일"

 

각 커밋의 작성자를 명확히 해야하기 위해 이름과 이메일 설정은 필수이다.

 

 

저장소 초기화

# 현재 디렉토리를 새로운 Git 저장소로 초기화
git init

# GitHub에 있는 저장소를 복제
git clone https://github.com/사용자명/저장소명.git

 

  • init은 현재 디렉토리에 git 저장소를 초기화 한다. 버전 관리를 시작할 수 있다.
  • clone은 원격 저장소를 복제하여 로컬 컴퓨터에 복사한다.

 

파일 상태 확인

# 현재 작업 디렉토리의 상태를 확인 (변경, 스테이징된 파일)
git status

 

  • 현재 작업 디렉토리의 변경된 파일, 스테이징이 된 파일, 스테이징이 되지 않은 파일의 상태를 확인 할 수 있다.

 

 

파일 추가 및 커밋

# 파일을 스테이지에 추가

git add <파일명> # 특정 파일 추가
git add . # 모든 변경 사항 추가

# 커밋(변경 사항을 저장소에 기록)
git commit -m "커밋 메세지"

 

브랜치

# 현재 브랜치 확인
git branch

# 새로운 브랜치 생성
git branch <브랜치명>

# 브랜치 변경
git checkout <브랜치명>

# 브랜치 생성과 동시에 변경
git checkout -b <브랜치명>

 

원격 저장소

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

# 원격 저장소 목록 확인
git remote -v

# 원격 저장소에서 최신 변경 사항 가져오기(병합하지 않음)
git fetch origin <브랜치명>

# 원격 저장소에서 최신 변경 사항 가져오기(병합)
git pull origin <브랜치명>

# 변경 사항을 원격 저장소에 푸시
git push origin <브랜치명>

 

  • git fetch origin은 최신 변경 사항을 가져오는데, 병합되지 않는다. 대신 FETCH_HEAD 레퍼런스가 생성되는데, 이를 통해최신 변경사항을 가져올 수 있으며 최신 상태와 현재 로컬 상태의 차이를 비교할 수 있다.
# 원격 저장소에서 최신 변경 사항을 가져옴
git fetch origin

# FETCH_HEAD와 현재 로컬 HEAD 사이의 차이를 비교함
git diff FETCH_HEAD

# 특정 파일만 비교
git diff FETCH_HEAD -- <파일명>

 

 

  • git push를 시도했을 떄 충돌이 발생하면, 충돌을 해결한 후 다시 푸시해야 함
  • git merge origin/<브랜치명>으로 원격 저장소와 merge한 후 푸시 해야함

 

병합

# 현재 브랜치에 다른 브랜치의 변경 사항 병합
git merge <브랜치명>

 

로그

# 커밋 로그 확인
git log

 

기타 명령어

# 수정한 파일의 변경 내용 보기
git diff

# 마지막 커밋 수정 (스테이지된 파일 포함)
git commit --aned

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

# 브랜치 삭제
git branch -d <브랜치명>

 

  • git commit --amend는
  • 이전 커밋 메시지를 변경하거나,스테이징된 변경사항을 이전 커밋에 추가 할 수 있다.
# 커밋메세지 수정, 해시 번호는 변경됨
git commit --amend -m "새로운 커밋 메세지"



# 파일 수정 및 스테이징
git add <파일명>

# 이전 커밋에 수정된 파일 추가
git commit --amend

 

  • 이미 원격 저장소에 푸시된 커밋보다는 로컬에서만 존재하는 커밋에 사용하는 것이 좋다.
  • 또는 커밋을 하고 푸시하기 전에 변경사항이 있으면 사용하기 좋을듯 하다.
  1. 주요 개념
  2. 기본 명령어
  3. Git 설정
  4. 저장소 초기화
  5. 파일 상태 확인
  6. 파일 추가 및 커밋
  7. 브랜치
  8. 원격 저장소
  9. 병합
  10. 로그
  11. 기타 명령어
CHun2
CHun2
천천히, 하나씩
CHun2
훈이의 개발일기
CHun2
전체
오늘
어제
  • 분류 전체보기 (64)
    • Computer Structure (4)
    • BeakJoon (3)
    • Data Structures & Algorithm.. (12)
    • Database (2)
    • Design pattan (2)
    • Git (1)
    • Java (9)
    • Javascript (2)
    • JPA (5)
    • MongoDB (1)
    • Network (2)
    • Projects (1)
    • React (1)
    • Spring (11)
    • SQLD (2)
    • 정보처리기사 (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 자료구조
  • 컴퓨터구조
  • 프로그래밍
  • spring boot
  • Stack
  • 파이썬
  • 인터페이스
  • 스프링 입문
  • Queue
  • Spring
  • 데이터베이스
  • JPA
  • 스택
  • 스프링 핵심 원리
  • SQLD
  • 정리
  • DATABASE
  • python
  • spring-boot
  • 알고리즘
  • Java
  • 자바기초
  • collection
  • SQL
  • it
  • Beakjoon
  • 자바
  • 백준
  • Interface
  • restAPI

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
CHun2
Git 기초
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.