2022.04.18_버전 관리 시스템과 Git
버전 관리 시스템
버전 관리 시스템은 파일의 변화를 기록, 추후 특정 버전을 로드할 수 있는 시스템이다.
현재 버전 관리는 로컬 / 중앙집중형 / 분산형으로 나뉘며 Git은 분산형에 속하며, 변화의 히스토리를 각 개인이 관리하게 된다.
Git
Git은 데이터를 파일 시스템 스냅샷(Snapshot)의 연속으로 취급, 파일이 달라지지 않으면 새로 저장하지 않고 이전 상태에 대한 링크(Link)만 저장한다.
Git은 파일을 아래 세 가지 상태로 관리한다.
- Committed : 데이터가 로컬 데이터베이스에 저장됨.
- Modified : 수정 파일이 로컬 데이터베이스에 커밋되지 않음.
- Staged : 현재 수정한 파일을 곧 커밋할 것이라는 상태
위 참고자료의 디렉토리와 영역에 대해서 알아보겠다.
- Git Directory : 다른 컴퓨터에 있는 저장소를 복제(clone)하거나 프로젝트 생성(init)시 만들어진다.작업중인 디스크에 있고 해당 디렉토리 안에 압축된 DB에서 파일을 불러와 Working Directory를 만든다.
- Working Directory : 프로젝트의 특정 버전을 체크아웃(checkout)한 것이다.
- Staging Area : Git Directory에 있으며 단순한 파일이다. 커밋할 파일에 대한 정보를 저장하며 인덱스(Index)라고도 한다.
Git 명령어
로컬 사용 명령어
git commit : 수정 파일 업로드
- ex)
위 사진과 같이 명령어 한번 입력시마다 커밋이 추가된다
git branch : branch 추가
- ex)
위 명령어로 branch 추가 후 커밋 실행 시, 별도의 분기로 커밋된다.
명령어 중 -f를 붙이면 특정 위치로 branch 이동도 가능하다.- ex) git branch -f branch_1;
git checkout : 지정한 위치로 'HEAD'가 이동한다.
- ex) git checkout main;
- ex) git checkout C2;
git merge : 선택된 branch로 다른 branch를 병합 후 커밋한다.
- ex)
(branch_1 선택 중)git merge main;
(main 선택 중)git merge branch_1;
git rebase : 선택된 branch의 내용을 복사하여 다른 branch로 병합 후 붙여넣는다.
- ex)
(branch_1 선택 중)git rebase main;
명령어 중 -i를 붙이면 추가로 branch 내 순서를 바꿔 이동도 가능하다.- ex)
git rebase -i main
git reset : 선택된 커밋을 삭제하고 이전으로 branch 이동
git revert : 선택된 커밋을 유지한 상태로 이전의 커밋을 추가
- ex) git reset C2
- ex) git revert C2
git cherry-pick: 입력한 커밋을 복사
- ex) git cherry-pick C2 C3
git tag : 입력할 태그(설명)을 지정된 커밋에 추가. 주로 버전명 표시에 사용함.
- ex) git tag ver1.5.35 C2
원격 사용 명령어
git clone : 원격 저장소를 로컬로 복제
- ex) git clone
git fetch : 원격 저장소의 내용을 로컬로 가져오는 것
- 로컬에 없는 커밋 다운로드
- 원격브랜치 업데이트
- 원격 브랜치 : 원격 저장소의 브랜치 추적
git pull : (git fetch + git merge)
- 원격 저장소의 내용을 로컬로 가져와 branch를 병합
git push : 로컬의 내용을 원격 저장소로 업로드
Author And Source
이 문제에 관하여(2022.04.18_버전 관리 시스템과 Git), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@sung9513/2022.04.18버전-관리-시스템과-Git저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)