Git과 GitHub의 개념을 이해하고, 사용하는 방법을 숙지한다.
Git = 분산 버전 관리 시스템 (VCS)
프로젝트 파일을 하나로 유지해놓고, 별도로 작업된 수정 내용을 업데이트 & 기록하며 작업할 수 있도록 도와주는 시스템. 쉽게 말해, 최종.doc 최최종.doc 최최최종.doc 처럼 새로운 업데이트 파일을 계속 만들지 않고, 버전 분리를 통해 하나의 프로젝트 파일을 유지하되 버전별 수정 내용을 기록추적함으로써 파일을 관리해주는 시스템!
Git에 존재하는 Branch의 개념은, 메인 프로젝트를 건드리지 않고 독립적으로 작업을 진행하기 위한 가지(버전)라고 생각하면 쉽다. 생성된 각각의 브랜치는 서로의 영향을 받지 않기 때문에 여러 작업을 동시에 진행할 수 있도록 돕는다. 또한 여러 명이 함께 팀 프로젝트를 진행할 때, 다른 사람들의 작업에 영향을 주지 않기 위해 branch를 활용한다.
GitHub는 Git을 이용한 프로젝트들을 관리할 수 있게 해주는 호스팅 플랫폼이다. GitHub를 사용하면 내 컴퓨터 안(local repository)에 저장된 프로젝트를 원격 클라우드 기반 저장소(remote repository)에 업로드 할 수 있고, 동일한 프로젝트를 가지고 다른 개발자들과 교류 & 협업할 수 있다. 또한 GitHub는 개발자들이 작업이나 프로젝트를 업로드 하고 공유하는 Social Network의 역할도 한다.
GitHub의 활용구조를 단순화하면 위의 이미지와 같다.
이미 존재하는 프로젝트에 협업하는 경우에는 GitHub에 업로드된 프로젝트를 클로닝하면 되고, 새롭게 시작하는 경우에는 GitHub 내에 새로운 repository를 생성한 뒤 git remote add origin URL
을 통해 새로운 repository와 local repository를 연결하면 된다.
*일반적으로 remote repository가 한 개일 경우 origin
이라고 명명한다.
local repository와 remote repository가 연결되면 local repository에서 commit을 통해 수정사항을 저장한다.
그 후 git push
를 하여 remote repository에 수정한 내용을 전달한다.
수정된 파일이 master branch로 병합되기 전, PR(Pull Request) 과정을 통해 최종 점검을 하게 된다. 쉽게 말해 승인(결재) 단계라고 생각하면 되는데, 프로젝트 오너에게 merge 요청을 하는 과정이자 해당 repository에 접근 권한이 있는 개발자들이 작업 내용을 확인하고 피드백을 주는 과정이다.
점검 완료된 파일은 master branch로 git merge
되는데, 해당 파일은 local repository에 바로 반영되지 않기 때문에 다시금 remote repository에서 git pull
을 통해 파일 동기화를 해주어야 한다.
아래는 Git과 GitHub 활용 시 필요한 명령어들이다. 사용에 익숙해지도록 노력하자!
[Git branch 관련 명령어]
git branch 브랜치명 : 새로운 브랜치를 생성하는 명령어
git checkout 브랜치명 : 원하는 브랜치로 이동하는 명령어
git merge 브랜치명 : 작업 내용을 다른 브랜치에 적용할 때 사용하는 명령어
[Git 명령어]
git clone : Remote Repository(master branch)에서 파일을 다운로드받는 명령어
git init : 새 repository를 만들고 프로젝트 관리를 시작하는 명령어
- 프로젝트 폴더 내 현재 저장소에 대한 모든 변경사항을 추적 관리하는 숨겨진 파일 .git을 생성
git status : repository의 현재 상태를 확인하는 명령어
- 어떤 파일이 변경되었고 어떤 파일이 추가되었는지 확인 가능
git add : 수정이력의 기록을 위해 파일을 준비시키는 명령어 (쉽게 말해 장바구니)
- git add file.js : 특정 파일만 업로드
- 파일이름 간 공백을 주어 여러개의 파일 동시 업로드 가능
- git add . : 모든 파일 업로드
git commit : git add 명령어를 통해 추가된 파일에 대한 변경사항을 기록하는 명령어
- git commit -m "Commit message"
- Git에서는 Commit을 통해 현재 버전의 코드를 저장
- 커밋 히스토리를 통해 지금까지의 변경 사항을 확인 가능
- 일반적으로 특정 내용이나 기능을 추가하거나 수정 사항을 적용한 뒤 Commit을 남김
git log : 지금까지의 commit 이력을 확인하는 명령어
- 작성자, hash값, 날짜&시간, 커밋 메시지 등 commit에 대한 자세한 정보 포함
git push : 특정 위치로 커밋한 내용을 보내는 명령어
- git push origin 보내는위치 의 형태로 주로 작성된다