본문 바로가기

QA 업무

[CI/CD] [git&github] 1.1 깃 없는 세상

1.1 깃 없는 세상

버전을 관리하기 위한 도구가 없다면?

1. 변경 내역을 확인하기 어렵다.

2. 버전을 되돌리기 어렵다.

3. 협력하기 어렵다.

 

1.2 버전과 버전 관리 이해하기

버전이란?

유의미한 변화가 결과물로 나온 것, 유의미한 변화가 결과물로 저장된 것

 

버전 vs 패치 vs 업데이트

패치 : 시급한 오류 해결을 동반하거나 비규적 규모가 작은 버전

업데이트 : Windows 업데이트 처럼 주기적으로 추가되는 버전, 새롭게 추가되는 기능을 담은 버전

 

개발에서 버전관리란?

 

1.3 깃, 소스트리, 깃허브 알아보기

깃이란?

버전 관리 시스템(version control system, vcs) 

리눅스의 아버지 리누스 토르발스 가 오픈소스 프로젝트(리눅스 커널) 진행하다 버전 관리에 어려움을 느껴 만든 도구

오픈 소스 코드가 공개되어 있음

명령어로 이용하는 sw 이기 때문에 (CLI, Command Line Interface) 명령어와 옵션 학습이 필수

 

소스트리

아틀라시안 회사 깃 직관적으로 편리하게 사용할 수 있는 프로그램 제작

명령어만으로 동작하는 깃을 사용자 입장에서 편리하게 사용하도록 만든 클라이언트 프로그램

 

깃허브?

원격 저장소 호스팅 서비스

깃으로 버전 관리하는 프로젝트들이 모여 있는 웹 사이트

 

1.4 깃 설치하고 설정하기

git config 명령으로 깃과 관련된 내용을 설정/설정한 값 확인할 수 있음

 

2.1 버전관리의 큰 그림

작업 트리(Working Tree) : 우리의 프로젝트가 위치할 공간을 작업 디렉터리 or 작업트리

 

작업 디렉터리 : 버전 관리의 대상이 위치하는 공간

 

스테이지 : 다음 버전이 될 후보가 올라가는 공간, staging area or index라고 부름, 버전을 만들기 위해 작업 디렉터리에 있는 파일에 변경 사항을 만들고, 이 변경 사항들 중 새로운 버전으로 만들려는 파일을 선별해 스테이지로 옮김

 

저장소 : 버전이 만들어지고 관리되는 공간

스테이지에 있는 파일을 바탕으로 새로운 버전을 만들면 새 버전이 저장소에 추가되어야 됨

저장소와 스테이지는 사용자에게 명시적으로 보이지 않음

저장소에 새로운 버전을 만드는 것을 커밋한다.(commit) 라고 표현함.

 

 

2.2 버전관리 맛보기

a,b,c 라는 텍스트 파일 안에 커서를 줄바꿈 하기
스테이지에 올라가지 않은 파일 항목에 추가된 파일

*보라색 물음표 아이콘?

깃이 기존에 변경 사항을 추적하지 않았던 새로운 파일을 의미

기존에 깃이 관리하지 않았던 파일을 untracted 상태에 있는 파일 이라고 함

깃이 변경사항을 추적하고 있는 파일은 스테이지에 올라왔거나 한 번이라도 커밋된 적이 있는 파일이 해당됨

 

*스테이지에 파일 올리는 방법

"모두 스테이지에 올리기" 버튼 클릭

 

커밋 메세지

버전을 설명하는 메세지

지금 어떤 파일을 어떻게 변경했는지, 왜 이렇게 변경했는지 등의 내용을 담은 일종의 쪽지

제목과 본문으로 구성되기도 하며, 개발자들끼리 매우 중요한 의사소통의 수단임

다른 개발자들이 이해할 수 있게 에러 메세지 or 링크 첨부도 함

 

파란 네모 : 커밋 메세지
a 텍스트 파일의 내용을 수정하고 c 텍스트 파일을 삭제하면 커밋하지 않은 변경사항 이라 나타남

 

*gitignore로 무시하기

.gitignore 파일은 무시할 파일/폴더 목록을 적은 파일임

.gitignore 파일에 적은 파일이나 폴더에 변경사항이 생겨도 이를 무시함