정의

Git은 분산 버전 관리 시스템으로, 소프트웨어를 개발할 때 여러 사람이 동시에 작업할 수 있도록 돕는 도구다. 코드 변경 사항을 추적하고 협업하며, 버전 관리를 효율적으로 할 수 있게 해준다.

주요 용어

  1. Repository(저장소): 코드와 변경 내역을 저장하는 곳. 로컬 저장소와 원격 저장소(GitHub, GitLab)로 나뉜다.
  2. Commit: 변경 사항을 저장소에 기록하는 작업이다.
  3. Branch: 독립적으로 작업을 진행할 수 있는 가지다.
  4. Merge(병합): 둘 이상의 브랜치를 하나로 합치는 작업이다.
  5. Clone: 원격 저장소의 내용을 로컬 저장소로 복사해오는 작업이다.
  6. Pull: 원격 저장소의 변경 사항을 로컬 저장소로 가져오는 작업이다.
  7. Push: 로컬 저장소의 변경 사항을 원격 저장소로 올리는 작업이다.
  8. Stash: 작업 중인 변경 사항을 임시로 저장해두고, 나중에 다시 적용할 수 있게 하는 기능이다.
  9. Remote: 원격 저장소를 가리키는 용어다.
  10. Fork: 다른 사람의 원격 저장소를 자신의 원격 저장소로 복사하는 작업이다.

리베이스

리베이스는 커밋의 베이스를 새롭게 정의하는 작업이다. 테스트용 커밋이나 오타가 섞인 히스토리를 정리하고 싶을 때 사용하며, 특히 인터랙티브(-i) 옵션을 쓰면 대화형으로 수정할 수 있다. 수정하고 싶은 커밋의 바로 앞 커밋 해시나 HEAD를 지정한 뒤, 열린 에디터에서 내용을 확인하고 적절한 명령으로 수정하면 된다.

1
2
3
4
5
git reset --soft "커밋아이디" # 커밋아이디로 돌아오지만 기존에 커밋 되었던 기록들은 남겨둔다.
git reset --mixed "커밋아이디" # 커밋된 파일들을 작업공간으로 되돌린다. (Stage before)
git reset --hard "커밋아이디" # 커밋아이디 시점으로 되돌린다. 이전 커밋 기록도 초기화 된다.
git reset --hard HEAD~2 # 두 개의 커밋을 취소한다. 이전 커밋 기록도 초기화 된다.
git reset --mixed HEAD^ # 가장 최근의 커밋이 취소되어 작업공간으로 되돌린다.