IT/학습
Git 버전관리
wh011202
2024. 12. 6. 14:51
※ Git(Global information Tracker)은 강력한 버전 관리 기능을 제공합니다.
Git이 할 수 있는 다양한 일 들
- 파일 추적 및 관리: 파일 변경 사항 추적, 파일 추가 및 변경 사항 저장
- 지금 당장, 이전 세이브 본과 어떤 차이가 있는지 바로 보임
- 기록 관리: 변경 기록 관리, 변경 사항 비교
- 세이브 파일 간 기록 비교
- 브랜치 관리: 여러 작업을 분리하고, 작업 병합
- 분기점을 두고 나누어서 작업
- 세이브 파일 남겨두고 한쪽 진행
- 다른 쪽 세이브 파일 넘어가서도 작업 진행 가능
- 여러 분기점의 변동 내역을 가지고 합칠 수도 있음
- 협업 및 원격 저장소: 협업, 원격 저장소와 동기화, 변경 내용 공유 및 가져오기
- 원격 저장소에 내용 보내고 받고 가능
- 변경 사항 되돌리기: 실수 수정, 이전 버전으로 돌아가기
- Reset: 어벤저스 엔드게임
- Revert: 테넷
- Working Directory라고 적힌 것은 저희가 작업중인 폴더입니다. 해당 폴더에서 파일 추가, 삭제, 수정이 일어나게 되면 그 모든 내역은 추적이 됩니다.
- 변동 내용들이 git add를 통해 차곡차곡 staging area에 모입니다. 파일 하나만 변했는데 새로운 버전을 만들어버리면 무수히 많은 버전들이 생겨날 것이기 때문에, 반영하고자 하는 변동사항들을 잠시 차곡차곡 모아두는 곳이라고 생각하시면 됩니다.
- 스테이징 공간에 add를 통해 모인 변동사항들에 git commit 과정을 거치게 되면 하나의 버전이 만들어 지게 됩니다. 이러한 버전들은 로컬 저장소에 차곡차곡 쌓입니다.
- 문제가 생기거나 버그를 수정할 목적으로 과거 차곡차곡 쌓아두었던 특정 버전으로 돌아갈 수도 있습니다. 해당 내용은 추후 상세히 배우게 됩니다.
- 로컬 공간에서 git Push를 진행하게 되면, 연동되어있는 원격 저장소에 올라가게 됩니다. 원격 저장소에 올라가게 되면, 해당 원격 저장소를 볼 수 있는 다른 사람 혹은 본인이 다른 컴퓨터로 해당 원격 저장소를 보게 되면 변동사항들 및 최신 코드를 볼 수 있는것 입니다.
- 타인과 협업을 하고 있거나, 본인이 여러 작업 공간에서 코드를 작성하고 push하였다면, 원격 저장소에 변동 사항이 생겨있을것이고, 이는 fetch 기능을 통해 가져올 수 있습니다. git Pull은 fetch로 가져온 변동사항을 바로 본인 코드에 합치는 과정까지 포함되어 있습니다. 이러한 코드 합치는 과정을 Merge라고 부릅니다.
- Pull을 받아보았는데, 만약 본인이 현재 작성중인 코드가 타인에 의해 변경되었을 경우, 변동사항을 바로 반영할 수가 없고 Merge Conflict라는 문제가 발생할 것입니다.
▲ IT업계에는 출처는 불분명하지만 "복구나 운영에 실패한 관리자는 용서받을 수 있어도, 백업에 실패한 관리자는 용서할 수 없다" 라는 명언이 있습니다.
우리가 가장 주의해야할것은 commit 까지 해도 로컬에만 저장되있으니 push 까진 꼭 해두라는 의미인거같다.
자칫하면 하던작업을 날려먹는 경우가 생길수 있고, 협업중일땐 올라오질 않았으니 업데이트가 없는것이다.
커밋 메시지 7가지 규칙
- 제목과 본문을 빈 행으로 구분한다.
- 제목을 50글자 내로 제한한다.
- 제목 첫글자는 대문자로 작성한다.
- 제목 끝에 마침표 넣지 않는다.
- 제목은 명령문으로 사용하며 과거형을 사용하지 않는다.
- 본문의 각 행은 72글자 내로 제한한다.
- 본문은 어떻게 보다 무엇을 왜 개발하였는지 설명한다.
라고는 하는데.... 결국 회사마다 규칙이 다르다 하니 참고만 하시길 바란다.