24-Winter 4회차 모각코

YEEUN CHOI·2025년 1월 9일

목표

4회차: 25/01/09 19:00 ~ 22:00
장소: ZOOM
계획: 24년 동계 모각코

스터디 계획

스터디 주제 : Release : 완성된 프로젝트 출시

스터디 목표 : 완성된 프로젝트를 출시하는 방법 학습하기

결과

tag(태그) : 특정 커밋에 붙이는 태그

태그(tag)란?
태그는 특정 커밋을 가리키는 "이름표" 같은 것임. 브랜치처럼 특정 커밋을 가리키지만, 브랜치와 달리 태그는 고정되어 있음. 즉, 브랜치는 커밋이 추가되면 최신 커밋을 따라가지만, 태그는 한 번 생성되면 그 커밋에 영구적으로 남아있음.

주로 릴리즈 버전을 관리하거나 중요한 커밋에 표시를 남길 때 사용함. 예를 들어, v1.0, v2.0 같은 릴리즈 태그를 만들면 특정 버전에 쉽게 접근할 수 있음.

태그 생성

git tag 명령어로 태그를 생성할 수 있음. 주로 -a(주석 태그) 옵션을 사용해서 메시지와 함께 태그를 생성함. 브랜치 이름이나 커밋 체크섬을 명시하지 않으면 HEAD(현재 작업 중인 커밋)에 태그가 붙음.

$ git tag -a -m "<메시지>" <태그명> [브랜치명 또는 체크섬]

예시

# 커밋 로그 확인
$ git log --oneline
3d94a73 (HEAD -> master, origin/master, origin/main, main) add asynciotest
8aa7e99 init

# 태그 생성
$ git tag -a -m "첫 번째 릴리즈" v1.0

위 명령으로 v1.0이라는 태그가 HEAD에 생성됨. 이제 커밋 로그에서 태그를 확인할 수 있음.

$ git log --oneline
3d94a73 (HEAD -> master, tag: v1.0, origin/master, origin/main, main) add asynciotest
8aa7e99 init

태그 푸시

태그는 로컬에서 생성되므로, 원격 저장소로 푸시해야 다른 사람이 확인 가능함.

$ git push <원격저장소 별명> <태그명>

예시

$ git push origin v1.0

결과

To https://github.com/username/repo.git
 * [new tag]         v1.0 -> v1.0

Fetch : 원격 저장소의 이력 동기화

git fetch는 원격 저장소의 최신 커밋 이력을 로컬로 가져오는 명령어임. 코드는 변경하지 않고 커밋 기록만 업데이트하므로, 작업 중인 코드에 영향을 주지 않음.

fetch와 pull의 차이

  • fetch: 원격 저장소의 커밋 히스토리만 로컬 저장소에 동기화함. 워킹 트리(작업 파일)는 그대로 유지됨.
  • pull: fetch + merge 과정을 한 번에 실행함. 원격 저장소의 변경 사항을 로컬에 바로 반영함.

fetch 사용법

$ git fetch <원격저장소 별명>

예시

$ git fetch origin

이 명령어를 실행하면 원격 저장소의 브랜치와 커밋 이력이 로컬 저장소에 동기화됨. 그러나 워킹 트리는 변경되지 않음.

fetch 후 작업
동기화된 커밋을 확인하려면 git log로 원격 브랜치 상태를 확인할 수 있음.

$ git log origin/main

fetch 이후 원하는 브랜치로 이동하려면 git checkout 명령어를 사용하거나 git pull로 최신 상태를 병합해야 함.

fetch 예제

1. 원격 저장소의 최신 상태 가져오기

$ git fetch origin

2. fetch 이후 로그 확인

$ git log origin/main

3. fetch 후 병합
fetch 후 최신 상태를 워킹 트리에 반영하려면 merge를 사용해야 함.

$ git merge origin/main

4. fetch와 pull 비교
fetch를 통해 원격 저장소의 상태를 먼저 확인하고, 필요할 경우 수동으로 병합.
pull은 fetch와 merge를 한 번에 실행하여 자동으로 병합.

활동사진

개인 블로그 링크

0개의 댓글