교과외 활동/멋사 스터디

GIt & Github 정리

윈터가든 2023. 4. 7. 00:05

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 <브랜치명>