Data-Driven System Development/Git

Git 협업하기: 필수 커맨드 정리

Data Jun 2025. 3. 21. 09:53

 Git을 활용한 협업에서는 브랜치 관리뿐만 아니라 원격 저장소와의 동기화, 코드 변경 추적, 롤백 기능이 중요합니다.
이번 글에서는 Git 협업에서 꼭 알아야 할 커맨드 3가지를 정리해보겠습니다.

 

git fetch: 원격 저장소의 최신 변경 사항 가져오기

 git fetch란?

  • 원격 저장소(remote)의 최신 변경 사항을 가져오기만 하는 명령어
  • 로컬 브랜치에는 영향을 주지 않음
  • git pull과 다르게 병합(merge)까지 자동으로 진행되지 않음

 사용 예시

먼저 원격 저장소의 최신 커밋을 가져오려면 아래 명령어를 실행합니다.

git fetch origin
  • origin은 기본 원격 저장소 이름입니다.
  • 이 명령어를 실행하면 원격 저장소의 최신 상태가 로컬에 다운로드되지만, 직접 코드에는 반영되지 않습니다.

git fetch 후 최신 상태 확인

원격 브랜치의 상태를 확인하려면 다음 명령어를 사용합니다.

git branch -r

-r 옵션을 추가하면 원격 브랜치 목록을 볼 수 있습니다.

주의할 점:

  • git fetch를 실행해도 기존 브랜치가 업데이트되지 않습니다.
  • 가져온 최신 변경 사항을 로컬 브랜치에 반영하려면 git merge를 해야 합니다.

만약 원격 저장소의 최신 상태를 바로 로컬에 반영하고 싶다면?

git pull origin main

이렇게 하면 git fetch + git merge가 한 번에 실행됩니다!

 

 

git blame: 파일의 변경 내역 추적

git blame이란?

  • 특정 파일의 각 줄이 언제, 누가, 어떤 커밋에서 변경했는지 확인하는 명령어
  • 코드 변경 히스토리를 추적하는 데 유용

 사용 예시

git blame example.py

이렇게 실행하면 example.py의 각 줄이 어떤 커밋에서 추가/수정되었는지 표시됩니다.

 

출력 예시:

1a2b3c4d  (Alice  2024-03-21 12:45:23)  def add(a, b):
3e4f5g6h  (Bob    2024-03-22 14:10:55)      return a + b

 첫 번째 열: 커밋 ID
 두 번째 열: 수정한 사람 (Author)
 세 번째 열: 수정 날짜
 네 번째 열: 코드 내용

 

 언제 유용할까?

  • 특정 코드가 언제, 왜, 누가 추가했는지 알고 싶을 때
  • 코드 리뷰 중 특정 변경 사항의 이력을 추적하고 싶을 때

특정 줄 범위만 보고 싶다면?

git blame -L 10,20 example.py

10~20번째 줄에 대한 정보만 출력됩니다.

 

git revert: 안전한 롤백

git revert란?

  • 특정 커밋에서 이루어진 변경 사항을 되돌리는 새로운 커밋을 생성
  • 기존 커밋 히스토리는 유지하면서 변경 사항만 취소

 git reset과의 차이점?

  • git reset은 커밋 자체를 삭제하여 히스토리가 변경됨 ⚠️
  • git revert는 되돌리는 새로운 커밋을 생성하여 히스토리를 유지

 사용 예시

git revert <커밋 ID>
  • 해당 커밋에서 이루어진 변경 사항이 취소된 새로운 커밋이 생성됨.

예를 들어, 다음처럼 실행하면 특정 커밋을 되돌릴 수 있습니다.

git revert 1a2b3c4d

변경 사항이 취소되었지만, 히스토리는 남아 있음!

 

 여러 개의 커밋을 한 번에 되돌리려면?

git revert -n HEAD~3..HEAD
  • 마지막 3개의 커밋을 한 번에 되돌림
  • -n 옵션을 추가하면 변경 사항을 스테이징 영역에만 반영하고, 직접 git commit할 수 있음

언제 사용할까?

  • 실수로 잘못된 커밋을 했지만 팀원과 공유된 히스토리를 변경하고 싶지 않을 때
  • 특정 기능을 제거해야 하지만, 다른 커밋은 유지해야 할 때

 

정리: Git 협업을 위한 필수 커맨드

마무리

이번 글에서는 Git 협업에서 꼭 알아야 할 git fetch, git blame, git revert 명령어를 정리했습니다.

 - 원격 저장소와의 동기화를 관리할 때는 git fetch
 - 코드 변경 내역을 추적하고 싶다면 git blame
 - 실수를 되돌리되 히스토리는 유지하고 싶다면 git revert

이제 실무에서 Git을 더 효과적으로 활용할 수 있겠죠?