tools & 형상관리/형상관리
Git 이란??
develkbh
2024. 8. 3. 17:16
깃(Git)이란?
깃(Git)은 소프트웨어 개발에서 사용되는 분산 버전 관리 시스템입니다. 즉, 여러 명이 하나의 프로젝트를 개발할 때, 소스코드의 변경 내역을 추적하고 관리하여 버전을 관리할 수 있는 도구입니다. 깃은 빠른 속도와 분산 저장소를 통한 안정적인 관리, 브랜치 기능 등 다양한 기능을 제공하며, 다양한 운영체제에서 사용할 수 있습니다.
깃의 주요 개념
- Repository(저장소): 깃에서는 변경 내역을 추적하고 관리하는 단위로, 일반적으로 로컬 저장소와 원격 저장소로 나뉩니다. 로컬 저장소는 개발자의 개발 환경에서 사용되는 저장소이며, 원격 저장소는 다른 개발자와 협업할 때 사용되는 저장소입니다.
- Commit(커밋): 변경 내역을 저장소에 기록하는 작업을 의미합니다. 각각의 커밋은 고유한 해시값을 가지며, 변경 내역의 이력을 추적할 수 있습니다.
- Branch(브랜치): 커밋의 이력을 기반으로 생성된 작업 라인으로, 새로운 기능 추가나 버그 수정 등을 위해 독립적인 브랜치를 생성하여 작업할 수 있습니다.
GIT 에서는 위와 같이 중앙 repository 를 통째로 복사한 별도의 repository를
각 개발자들이 가지고 있으며, 개발자는 변경 사항을 해당 로컬 repository에 반영하고,
최종적으로 이 변경사항을 중앙 repository에 반영하기 위해 pull request 를 요청 한다.
clone-> 로컬 repository에 작업 후 커밋 푸시-> pull request 생성->리뷰 및 머지 ->
업데이트사항 호컬에 반영(pull)
Git 용어, 명령어
-용어
- Repository : 저장소. 저장소는 히스토리, 태그, 소스의 가지치기 혹은 branch에 따라 버전을 저장, 작업자가 변경한 모든 히스토리 확인 가능
- Working Tree : 저장소를 어느 한 시점을 바라보는 작업자의 현재 시점
- Staging Area : 저장소에 커밋하기 전에 커밋을 준비하는 위치
- Commit : 현재 변경된 작업 상태를 점검을 마치고 확정하여 저장소에 저장하는 작업
- Head : 현재 작업중인 Branch를 가리킴
- Branch : 가지 or 분기점. 작업을 할 때 현재 상태를 복사하여 branch에서 작업한 후 완성이 되었을 때 Merge함
- Merge : 다른 branch의 내용을 현재 branch로 가져와 합치는 작업을 의미
-명령어
- git help : 도움말 기능(가장 많이 사용하는 21개의 깃 명령어 출력)
사용법이 궁금한 명령어를 알아볼 땐 git help (명령어) : 해당 명령어의 설정과 사용에 대한 도움말 출력 - git init : 깃 저장소를 초기화. 저장소나 디렉토리 안에서 이 명령을 실행하기 전까지는 그냥 일반적인 폴더이다. 이 명령어를 입력한 후에야 추가적인 깃 명령어 입력 가능
- git status : 저장소 상태 체크. 파일, 커밋이 필요한 변경사항, 현재 저장소의 어떤 브랜치에서 작업하고 있는지 등의 정보 출력
- git branch : Branch list 확인
- git add : staging 영역에 변경내용 추가 다음 commit 명령 전까지 변경내용을 staging 영역에 보관하여 변경내역을 저장
- git add [업로드할 파일 혹은 디렉토리 경로] : 해당 파일 or 디렉터리 변경내용 저장(staging area) 등록
- git add . : 현재 디렉토리 모든 변경내용 추가
- git add -a : 작업 디렉토리 모든 변경내용 추가
- git commit : add한 변경내용을 저장
- git commit -m (커밋 메세지) : 적고 싶은 메세지와 함께 add한 변경 내용 저장
- git commit -am (커밋 메세지) : 적고 싶은 메세지와 함께 add와 커밋을 한번에 실행
- git log : 커밋한 내역 확인
- git push : 로컬 컴퓨터에서 서버로 변경사항을 보내기
- git pull : 서버 저장소로부터 최신 버전을 가져오기 (작업의 기존 내용을 유지하면서 코드를 업데이트 할 때 사용)
- git clone : 프로젝트 첫 투입 때 많이 사용하며 서버 저장소의 코드, 데이터를 로컬 컴퓨터로 복사 (그대로 가져옴 만약 작업중인 내역이 있다면 덮어씀)
- git merge : 개별 branch에서 마친 작업을 master branch로 병합
rm -rf .git : git 연결 끊기