코드스테이츠_국비교육/[Section1]

07_Git의 기초_22.08.29

생각없이 해도 생각보다 좋다. 2022. 8. 30. 21:20

Git

>정의

: 분산형 버전 관리 시스템

>특징

: 소스 코드 기록을 관리하고 추적할 수 있음
: 버전을 갱신할 때마다 파일의 변경 이력을 저장
: 변경 사항을 파악하기 쉬움
: 원하는 버전으로 쉽게 돌릴 수 있음

>용도

: Git의 특징으로 주로 협업과 백업용으로 많이 활용함.

>Github

: Git Repository를 관리할 수 있는 클라우드 기반 서비스
: Git으로 관리되는 파일을 백업하는 원격 저장소

 

Git Workflow

그림 01. Git Workflow

Remote 영역

: 원격으로 제어되는 온라인 영역

: 다른 유저와 공유하기 위한 영역

//예시. Github repository

Local 영역

: 내 PC 영역

: Git으로 관리하는 영역을 설정할 수 있음. (명령어: git init)

Git으로 관리되는 영역은 변경 이력이 모두 저장됨.

 

Remote repository (Remote repo)

: Github 상에 존재하는 저장소(폴더)

Local repository (Local repo)

: Remote repo와 연결된 내 PC에 존재하는 저장소(폴더)

Staging area

: Work area에서 Local repository으로 이동(commit)하기 전에 놓는 공간.

: commit하기 전 거치는 단계

Work area

: Local repo내의 데이터를 작업하는 공간

: 수정이 이루어지고 새로 저장되는 모든 작업물이 존재.

Untracked area

: git 시스템의 관리를 받지 않는 내 PC 공간

 

Fork

타인의 Remote repo를 복사하여 나의 Remote repo를 생성하는 것.
>Github에서 실행

Clone

나의 Remote repo를 나의 Local repo로 복사하는 것 (연결: 자동)
>명령어: git clone (repo 주소)

Pull

타인의 Remote repo를 나의 Local repo로 복사하는 것 (연결: 수동)
>명령어: git pull (연결 이름) (branch 이름)

Add

Work area에 존재하는 작업물을 Staging area로 보내는 것.
>명령어: git add 파일명.확장자

Commit

Staging area에 존재하는 작업물을 Local repo로 보내는 것.
새로운 버전을 만드는 행위
>명령어: git commit -m 'message'(큰따옴표도 가능)
//-m: commit에 대한 간략한 메세지를 바로 적을 수 있게함.
//-am: 1번 이상 commit이 됐던 작업물에 대해서는 add과정과 commit과정을 동시에 실행.

Push

Local repo에서 나의 Remote repo로 보내는 것.
>명령어: git push (연결 이름) (branch 이름)

Pull Request

Fork를 통해 가져온 타인의 작업물을 수정하고, 수정한 것을 원래 주인의 작업물에 반영시키는 것.
새 버젼의 작업물을 기여한다고 표현함
>github내에서 작업물의 원래 주인에게 요청함.

 

추가 설명(추가 git 명령어)

git status

: 현재 작업하는 Local repo의 상태 확인

: 파일의 수정 여부, 파일의 area 위치, 충돌 여부 등 확인

git log

: 작업물의 commit 기록들을 확인할 수 있음.

git restore

: Local repo내에서 작업했던 변경사항을 폐기.

: commit 전의 작업물을 변경 전으로 되돌린 후 Work area에 놓음

git reset HEAD~1

: commit 한 기록을 삭제하고 이전 상태로 되돌림.

: 숫자로 최신의 버전부터 얼마나 되돌릴 것인지 설정

git init

: 현재 폴더를 git의 관리 하에 두게 만드는 명령어

git remote add (연결 이름) (repo 주소)

: Local repo와 remote repo를 연결하는 명령어

: 연결이 되어있어야 내용물을 가져올 수 있음.

git remote -v

: Local repo와 remote repo를 연결 상태를 확인하는 명령어.

 

// 대략적으로 이정도만 파악하고, 추가로 공부하면 더 자세한 내용으로 따로 정리하자.