1 Git 이란?
1.1 형상 관리 도구(Configuration Management Tool) 중 하나.
- 형상 관리 도구는 버전 관리 시스템이라고도 한다.
- Git은 소프트웨어를 개발하는 기업의 핵심 자산인 소스코드를 효과적으로 관리할 수 있게 해주는 무료, 공개소프트웨어.
- 하나의 중앙 서버가 존재하지만, 각자의 컴퓨터 저장소에 중앙 서버의 전체 사본을 가지고 작업을 할 수 있다.
2 Git의 장점
- 소스코드를 주고 받을 필요 없이, 같은 파일을 여러 명이 동시에 작업하는 병렬 개발이 가능하다.
- 즉 브랜치를 통해 개발한 뒤, 본 프로그램에 합치는 방식(Merge)으로 개발을 진행할 수 있다.
- 분산 버전관리이기 때문에 인터넷이 연결되지 않은 곳에서도 개발을 진행할 수 있으며, 중앙 저장소가 날라가버려도 다시 원상복구할 수 있다.
- 팀 프로젝트가 아닌, 개인 프로젝트일지라도 GIT을 통해 버전 관리를 하면 체계적인 개발이 가능해지고, 프로그램이나 패치를 배포하는 과정도 간단해진다.
3. Git/Github
Git : 형상 관리 도구(버전 관리 시스템)
Github : 형상 관리 도구(버전 관리) 웹호스팅 서비스
3.1Git(형상 관리 도구)
- 프로젝트를 진행하면서 소스 코드를 usb나 메일로 주고받는 건 엄청난 낭비, 보안성 위험이 있다.
그래서 프로젝트를 진행함에 있어 형상 관리 도구를 사용한다.
- 형상 관리 도구를 사용하면 변경을 쉽게 되돌릴 수 있다. 소스코드를 과거의 특정 시점으로 되돌리거나, 특정 시점의 변경 사항을 취소하거나, 두 버전의 소스 코드를 비교하는 등의 일이 가능하다.
3.2 Git 웹 호스팅 시스템
- 협업하고 있는 코드를 저장할 서버가 필요하다.
- 버전 관리 시스템을 지원하는 웹호스팅 서비스의 기능을 통해, push, pull request 같은 이벤트에 반응하여 자동으로 작업(배포 등)을 실행하게 할 수 있다.
3.3 Git GUI
- 많은 Git 명령어가 어려울 때는 GUI를 사용할 수 있다. Github desktop
4 관련 용어
- Repository : 저장소, 히스토리, 태그, 소스의 가지치기, branch에 따라 버전을 저장한다. 저장소를 통해 작업자가 변경한 모든 히스토리를 확인할 수 있다.
- Working Tree : 저장소를 어느 한 시점을 바라보는 작업자의 현재 시점.
- Staging Area : 저장소에 커밋하기 전에 커밋을 준비하는 위치
- Commit : 현재 변경된 작업 상태를 점검을 마치면 확정하고 저장소에 저장하는 작업.
- Head : 현재 작업중인 Branch를 가리킨다.
- Branch : 가지 또는 분기점을 의미하며, 작업을 할때 현재 상태를 복사하여 Branch에서 작업을 한 후에 완전하다 싶을 때 Merge를 하여 작업을 한다.
- Merge : 다른 Branch의 내용을 현재 Branch로 가져와 합치는 작업을 의미한다.
5 명령어
git init : 깃 저장소를 초기화한다. 저장소나 디렉토리 안에서 이 명령을 실행하기 전까지는 그냥 일반 폴더이다. 이것을 입력한 후에야 추가적인 깃 명령어들을 줄 수 있다.
git help : 명령어를 잊어버렸다면 커맨드 라인에 "git help"를 쳐보자. 그럼 21개의 가장 많이 사용하는 깃 명령어들이 나타난다. 좀 더 자세하게 “git help init”이나 다른 용어를 타이핑하여 특정 깃 명령어를 사용하고 설정하는 법을 이해할 수도 있다.
git status : 저장소 상태를 체크한다. 어떤 파일이 저장소 안에 있는지, 커밋이 필요한 변경사항이 있는지, 현재 저장소의 어떤 브랜치에서 작업하고 있는지 등을 볼 수 있다.
git clone : 원격 저장소의 저장소를 내 local에서 이용할 수 있게 그대로 복사해 가져온다.
git add : 이 명령이 저장소에 새 파일들을 추가하진 않는다. 대신, 깃이 파일들을 지켜보게 한다. 파일을 추가하면, 깃의 저장소 “스냅샷”에 포함된다.
git commit : 깃의 의미있는 수정 작업이 끝났을 때 마침을 알리는 작업이다. 보통 “git commit -m “Message hear.” 형식으로 사용한다. -m은 명령어의 다음 부분을 메세지로 남긴다는 뜻이다.
git push : 로컬 컴퓨터에서 작업하고 커밋을 깃허브에서 온라인으로도 볼 수 있기를 원한다면, 이 명령어로 깃허브에 변경사항을 "push"한다.
git pull : 로컬 컴퓨터에서 작업할 때, 저장소의 변경된 내용을 로컬(내 컴퓨터) 저장소에 적용하는 작업이다.
git log : 커밋 내역을 확인해보고 싶을 때 사용하는 명령어이다.
git branch :여러 협업자와 작업하고 자신만의 변경을 원한다면 이 명령어로 새로운 브랜치를 만들고, 독립적인 공간을 만든다. 새 브랜치를 “hello”로 지정하고 싶다면 "git branch hello"라고 쓸 수 있다.
git checkout : 독립된 작업 공간인 브랜치를 자유롭게 이동할 수 있다. 만약 master 브랜치를 들여다 보고 싶으면, git checkout master를 사용할 수 있다.
git merge : 브랜치에서 작업을 끝내고, 모든 협업자가 볼 수 있는 master 브랜치로 병합할 수 있다. "git merge hello"라고 입력한다면 hello브랜치에서 만든 모든 변경사항을 master로 추가한다.
'Frontend > Etc' 카테고리의 다른 글
OAuth 개념 및 동작방식 이해하기 (0) | 2021.10.30 |
---|---|
SEO란? (html 문서를 시맨틱 태그로 작성해야하는 이유) (0) | 2021.09.19 |
[IT 용어 정리] 비즈니스 로직이란? (0) | 2021.09.14 |
Babel이란 ? (0) | 2021.07.02 |