5회차: 25/01/14 19:00 ~ 22:00
장소: ZOOM
계획: 24년 동계 모각코
스터디 주제 : Git 심화
스터디 목표 : Git에서 심화 내용을 학습하기
git commit --amend는 방금 만든 커밋을 수정할 때 사용하는 명령어임. 커밋 후에 파일을 추가하거나, 커밋 메시지를 수정하고 싶을 때 유용함. 새로운 커밋을 만들지 않고 기존 커밋을 덮어쓰기 때문에 커밋 기록이 깔끔하게 유지됨.
예시
# 파일 수정 후 스테이징
$ git add 수정된파일.txt
# amend로 마지막 커밋 덮어쓰기
$ git commit --amend
$ git commit --amend -m "수정된 커밋 메시지"
주의사항
로컬에서만 커밋이 수정됨. 이미 푸시한 커밋을 amend로 변경한 경우, 강제로 푸시해야 함
$ git push --force
강제 푸시는 협업 브랜치에서 하지 않는 게 좋음. 다른 사람의 히스토리가 꼬일 수 있음.
git cherry-pick은 특정 커밋 하나만 선택해서 현재 브랜치에 적용할 때 사용하는 명령어임. 주로 여러 커밋 중 일부만 가져와야 할 때 유용함.
예시
$ git cherry-pick <커밋 체크섬>
$ git cherry-pick <커밋1> <커밋2>
사용 사례
예를 들어, release 브랜치에 버그를 고친 커밋만 반영하고 싶을 때, master 브랜치에서 버그를 수정한 커밋을 cherry-pick으로 가져올 수 있음.
주의사항
git reset은 브랜치를 특정 커밋으로 되돌릴 때 사용함. 또한 스테이징된 파일을 스테이징 해제(Unstage)할 때도 유용함.
reset 종류
1. soft reset : 브랜치를 특정 커밋으로 이동하면서 변경 사항을 스테이징 상태로 유지함.
$ git reset --soft <커밋 체크섬>
$ git reset --mixed <커밋 체크섬>
$ git reset --hard <커밋 체크섬>
git revert는 특정 커밋의 변경 사항을 되돌리면서 새로운 커밋을 생성함. 이력을 유지해야 하는 협업 브랜치에서 주로 사용됨.
# 특정 커밋 되돌리기
git revert <커밋 체크섬>
# 여러 커밋 되돌리기
git revert <커밋1> <커밋2>
# 예시 출력
Revert "timeout 설정 추가"
# 위 명령어는 "timeout 설정 추가" 커밋을 되돌리고,
# 이를 기록한 "Revert 'timeout 설정 추가'"라는 새로운 커밋을 생성한다.
git stash는 커밋하지 않은 변경 사항을 임시로 저장할 때 사용함. 예를 들어, 현재 작업 중인 브랜치에서 긴급한 작업으로 다른 브랜치로 이동해야 할 때 유용함.
# 변경 사항 저장
git stash
# 저장된 변경 사항 확인
git stash list
# 저장된 변경 사항 다시 불러오기
git stash apply
# 저장된 변경 사항 삭제
git stash drop
# Untracked 파일까지 저장
git stash -u