24-Winter 5회차 모각코

YEEUN CHOI·2025년 1월 15일

목표

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

스터디 계획

스터디 주제 : Git 심화

스터디 목표 : Git에서 심화 내용을 학습하기

결과

amend : 마지막 커밋 수정

git commit --amend는 방금 만든 커밋을 수정할 때 사용하는 명령어임. 커밋 후에 파일을 추가하거나, 커밋 메시지를 수정하고 싶을 때 유용함. 새로운 커밋을 만들지 않고 기존 커밋을 덮어쓰기 때문에 커밋 기록이 깔끔하게 유지됨.

예시

  1. 커밋 후 추가적인 파일 수정
# 파일 수정 후 스테이징
$ git add 수정된파일.txt

# amend로 마지막 커밋 덮어쓰기
$ git commit --amend
  1. 커밋 메시지 수정
$ git commit --amend -m "수정된 커밋 메시지"

주의사항
로컬에서만 커밋이 수정됨. 이미 푸시한 커밋을 amend로 변경한 경우, 강제로 푸시해야 함

$ git push --force

강제 푸시는 협업 브랜치에서 하지 않는 게 좋음. 다른 사람의 히스토리가 꼬일 수 있음.

Cherry-pick : 특정 커밋만 가져오기

git cherry-pick은 특정 커밋 하나만 선택해서 현재 브랜치에 적용할 때 사용하는 명령어임. 주로 여러 커밋 중 일부만 가져와야 할 때 유용함.

예시

  1. 특정 커밋을 가져오기
$ git cherry-pick <커밋 체크섬>
  1. 여러 커밋을 한꺼번에 가져오기
$ git cherry-pick <커밋1> <커밋2>

사용 사례
예를 들어, release 브랜치에 버그를 고친 커밋만 반영하고 싶을 때, master 브랜치에서 버그를 수정한 커밋을 cherry-pick으로 가져올 수 있음.

주의사항

  • cherry-pick으로 복사된 커밋은 새로운 커밋으로 기록됨. 커밋 ID가 다르기 때문에 같은 내용을 가진 커밋이라도 Git은 이를 다른 커밋으로 인식함.
  • 커밋 이력이 복잡해질 수 있으니 필요할 때만 사용하는 게 좋음.

Reset : 브랜치를 특정 커밋으로 되돌리기

git reset은 브랜치를 특정 커밋으로 되돌릴 때 사용함. 또한 스테이징된 파일을 스테이징 해제(Unstage)할 때도 유용함.

reset 종류
1. soft reset : 브랜치를 특정 커밋으로 이동하면서 변경 사항을 스테이징 상태로 유지함.

$ git reset --soft <커밋 체크섬>
  1. mixed reset (기본값)
    브랜치를 특정 커밋으로 이동하면서 변경 사항을 워킹 디렉토리로 돌림. 스테이징 영역에서는 제거됨.
$ git reset --mixed <커밋 체크섬>
  1. hard reset
    브랜치를 특정 커밋으로 이동하며 모든 변경 사항을 삭제함.
$ git reset --hard <커밋 체크섬>

Revert : 커밋을 되돌리지만 이력을 남기고 싶을 때

git revert는 특정 커밋의 변경 사항을 되돌리면서 새로운 커밋을 생성함. 이력을 유지해야 하는 협업 브랜치에서 주로 사용됨.

# 특정 커밋 되돌리기
git revert <커밋 체크섬>

# 여러 커밋 되돌리기
git revert <커밋1> <커밋2>

# 예시 출력
Revert "timeout 설정 추가"
# 위 명령어는 "timeout 설정 추가" 커밋을 되돌리고,
# 이를 기록한 "Revert 'timeout 설정 추가'"라는 새로운 커밋을 생성한다.

Stash : 변경 사항 임시 저장

git stash는 커밋하지 않은 변경 사항을 임시로 저장할 때 사용함. 예를 들어, 현재 작업 중인 브랜치에서 긴급한 작업으로 다른 브랜치로 이동해야 할 때 유용함.

# 변경 사항 저장
git stash

# 저장된 변경 사항 확인
git stash list

# 저장된 변경 사항 다시 불러오기
git stash apply

# 저장된 변경 사항 삭제
git stash drop

# Untracked 파일까지 저장
git stash -u

활동사진

업로드중..

개인 블로그 링크

0개의 댓글