Git
>정의
: 분산형 버전 관리 시스템
>특징
: 소스 코드 기록을 관리하고 추적할 수 있음
: 버전을 갱신할 때마다 파일의 변경 이력을 저장
: 변경 사항을 파악하기 쉬움
: 원하는 버전으로 쉽게 돌릴 수 있음
>용도
: Git의 특징으로 주로 협업과 백업용으로 많이 활용함.
>Github
: Git Repository를 관리할 수 있는 클라우드 기반 서비스
: Git으로 관리되는 파일을 백업하는 원격 저장소
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를 연결 상태를 확인하는 명령어.
// 대략적으로 이정도만 파악하고, 추가로 공부하면 더 자세한 내용으로 따로 정리하자.
'코드스테이츠_국비교육 > [Section1]' 카테고리의 다른 글
09_제어문(조건문, 반복문)_22.08.31 (0) | 2022.09.02 |
---|---|
08_Java의 기초.part(java, 변수, 타입, 문자열, 연산자, 콘솔 입출력)_22.08.30 (0) | 2022.08.30 |
06_Linux의 기초_22.08.26 (0) | 2022.08.28 |
05_Mock-up(첫 페어 프로그래밍)_22.08.25 (0) | 2022.08.25 |
04_페이지 레이아웃과 와이어 프레임_22.08.24 (0) | 2022.08.24 |