일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 하나의 솔루션
- vertex sahder
- git
- fragment
- glfw
- vertexarrayobject
- vertex
- VAO
- 멀티프로세스
- Tutorial
- 정의
- 솔루션에프로젝트추가
- visualstudip
- Qtspim
- glDrawArrays
- 프로젝트 여러개
- OpenGL
- turingmachine
- multi process
- 수리명제
- qtspim stack
- interface block
- 시작
- superbible
- 파일생성 명령어
- 자동판결
- 튜링기계
- fetching
- shader
- .sln
- Today
- Total
공사중
쉽게 정리한 Git 사용법 : 왜 쓰는가? 본문
Git은 버전 관리 시스템입니다. (VCS, Version control system)
어떤 작업을 하고 결과.txt를 만들었다고 가정하겠습니다. 그런데 자꾸 수정 사항이 발생해서 결과_최종.txt, 결과_최종2.txt이라는 파일을 또 만들었습니다. 각각은 버전1,2,3이라고 하겠습니다. 만약 버전 관리시스템이 없다면 3개의 버전을 모두 드라이브에 저장할 것입니다. 3개정도면 그냥 저장할만합니다.
하지만 이렇게하면 크게 두 가지 문제점이 있습니다.
1. 큰 프로젝트의 경우 모든 버전에 대한 자료를 다 저장할 수 없다. (저장공간의 한계)
2. 귀찮게 진행하던 프로젝트를 끄고, 원하는 프로젝트를 찾은 후에 다시 켜야한다.
git은 위의 문제점을 다음과 같은 방법으로 해결합니다.
Checkout!
git은 각 버전의 정보를 '특정시점에 대한 상태'(이하 스냅샷snapshot)으로 저장합니다.결과_최종.txt, 결과_최종2.txt와 같이 파일의 형태로 저장하는 것이 아니라 그 파일의 스냅샷만을 저장합니다. 각 스냅샷의 크기는 몇 kb가 되지 않습니다. 프로젝트를 통채로 저장하는 것보다 훨씬 저장공간을 덜 먹죠. 즉, 우리는 하나의 프로젝트에 대해서 여러개의 스냅샷(버전)을 가질 수 있습니다. 그리고 현재의 스냅샷에서 원하는 스냅샷으로 이동하는 것을 checkout이라고 합니다. 이 때 진행하던 프로젝트를 끄지 않고 cmd에서 한 줄의 명령어를 치면 됩니다.
예를 들어서 아래와 같이 코드를 작성했다고 가정합니다. 이 상태를 ver1라는 스냅샷을 저장했습니다.
그리고 이를 수정해서 ver2.라는 아래와 같은 상태로 만들었습니다. 이 상태를 ver2라는 스냅샷을 저장했습니다.
이제, 만약 ver1에서 ver2로 혹은 반대의 경우로 Checkout(프로젝트를 끄지 않고 코드 전체를 원하는 시점으로 되돌리기)하고 싶으면
git checkout ver1 //또는 //git checkout ver2
cmd창에 위와 같이 입력하기만 하면 됩니다. ver1에서 ver2로 변하는 과정에서 수백 줄의 코드를 입력했다면 cmd에서 한줄을 입력해서 수백 줄을 편하게 지웠다가 실행해보고, 되돌려서 실행해보고 할 수 있다는 뜻입니다.
뿐만 아니라 ver1를 내가 ver2를 친구가 작성했다면 이 둘을 합쳐서 하나의 파일로 만들 수 있습니다. 당연히 공통된 부분은 제외되고 서로 다른 부분만 굉장히 깔끔하게 합쳐집니다. ver1, ver2가 각각 수백줄에 달하면 합치는 과정도 참 머리아프겠죠? 이 부분은 여기에 복/붙하고 여기는 이 곳에 복/붙하고.. 이런거 안해도 됩니다.
이제 git을 왜 배우라고 하는지, 배우면 뭐가 좋은지 조금 이해가 되었을 것이라고 생각합니다.
아직 설명하지 않은 장점들이 많은데.. 나머지는 직접 공부하면서 느끼게 될 것입니다.
'개발 | Git' 카테고리의 다른 글
쉽게 정리한 Git 사용법 : 설치, 초기 설정, help (0) | 2019.02.18 |
---|---|
쉽게 정리한 Git 사용법 : 스냅샷Snapshot과 세 가지 상태 (0) | 2019.02.18 |
쉽게 정리한 Git 사용법 : 분산 버전 관리 시스템DVCS (0) | 2019.02.18 |
쉽게 정리한 Git 사용법 : 들어가기 (0) | 2019.02.18 |
slide share에 git hub 사용법 올리기 (0) | 2019.02.18 |