GIt & Github 정리
SCM = Source Code Managemaent
Git 과 Github는 SCM을 위한 도구
Git이란?
- 소스 이력 추적을 위한 버전 관리 시스템
- 수정된 내용을 반영하면 그걸 버전별로 누가 반영 했는지를 관리해주는 SCM의 구현체
Github란?
- git 프로젝트를 관리하는 저장소 시스템
Git 동작 흐름과 구성 요소
[local]
working Directory: 현재 작업 중인 프로젝트가 위치한 디렉토리
Staging: commit 할 파일의 예비 저장소
Local Repository: 각 컴퓨터의 git이 관리하는 로컬 저장소
[remote]
Remote Repository - Github: Github: github등 외부에 위치한 원격 저장소
[로컬 Git 저장소 생성 과정]
Step1 $ git init
Step2 .gitignore 파일 추가
- 보안상 민감정보, 각종 설정 파일, 빌드 산출물, 개발용 데이터베이스 등을 제외
Step3 $ git status
- 현재 어떤 파일들이 들어 있는지 확인하는 명령어
Step4 $ git add / $ git add "<파일명>"
- -git add :현재위치에 있는 모든 파일을 add한다.
- -git add "<파일명>" 특정 파일만 add한다.
Step5 $ git commit -m "<message"
- commit을 할 때 message를 남겨야 함
Step6 $ git branch -m main
🧐branch란?
동일 저장소 내에서 서로 영향을 받지 않는 독립적인 공간
main/ master
- 즉시 운영 배포할 수 있는 버전
- 사용자가 지금 이용 중인 코드
$ git branch -M main ➡️ 현재 바라보고 있는 branch의 이름을 main으로 변경
staging
- 상용에 반영하기 전 테스트 버전
feature
- 새로운 기능 추가 개발(병렬작업)
[github 원격저장소 저장 과정]
Step1 $ git remote add origin <원격저장소 주소>
Step2 $ git push -u origin <브랜치명>
ex) $ git push -u origin main
[github으로 협업하기]
Step1 git clone 하기
$ git clone <원격저장소 주소>
$ git clone http://github.com/[계정명]/[프로젝트명].git
Step2 해당 브랜치로 이동하기
$ git checkout -b <브랜치명>
$ git checkout <브랜치명>
Step3 $ git merge <브랜치명>