팀원A,B,C 세명이서 하나의 프로젝트를 진행한다고 할때 각자 진행한 코드를 어떠한 방법으로 합칠수 있을까? 매번 작성한 코드들을 날마다 압축해서 이메일로 공유해서 변경된 부분들을 일일히 찾아서 프로젝트에 적용해야 할까?
이러한 때에 사용 가능한것이 깃과 깃허브이다.
버전관리도구! - 로컬저장소
위의 사진처럼 변경된 내용을 포함한 전체를 새로운 파일로 저장하는 것이 아니라
변경된 내용만 버전으로 저장
v1.0.0
v1.0.1
v1.0.2
작업 도중 문제가 발생했을 경우 파일들을 원하는순간으로 다시 돌아갈 수 있게 만든 도구
깃허브 우측상단 프로필 아이콘 - Settings - Emails - 이메일 확인
--global 옵션은 로컬에서 사용하는 모든 프로젝트의 Git 커밋에 영문명, 이메일을 사용
저장소 디렉터리에서 --global 없이 git config를 사용하면 해당 디렉터리(저장소) 전용 설정을 추가하며 global 옵션보다 우선적용
전역 설정을 삭제
git config --global --unset user.name
git config --global --unset user.email
개별 저장소의 설정을 삭제
git config --unset user.name
git config --unset user.email
3) git config --list 후 작성한 user.name user.email이 적용되었는지 확인
커밋 시 사용자 이름과 이메일 주소를 사용
Visual Studio Code에서 프로젝트를 오픈한 후 Terminal - New Terminal
1) git init
-> Initialized empty Git repository in [경로]
맨처음 프로젝트를 올릴때. 해당 프로젝트의 모든 수정내역이 저장되는 공간(.git)생성
2) git add .
커밋(깃에서 추적할 파일) 대상화를 위해 프로젝트에 포함된 파일들을 add . - 프로젝트에 있는 모든파일
3) git status
git add 명령어를 통해 어떤것들이 올라갈지 확인, 필수x
4) git commit -m "first commit"
commit을 생성하면서 메세지를 남김
보통 최초의 커밋은 first commit 또는 initial commit 등으로 지정하면 된다.
5) git remote add 원격저장소명(origin) https://github.com/깃허브 계정/깃허브 프로젝트명
로컬저장소와 원격저장소(github)와 연결
6) git remote -v
현재 git에 등록된 원격 저장소 리스트 확인, 필수x
7) git push 원격저장소명(origin) 브랜치명(master)
4번에서 commit한 파일들을 원격 저장소의 브랜치명에 업로드
8) push하면 아래의 깃허브 로그인 화면이 뜨는데 깃허브 아이디 입력
9) Autorize Visual-Studio-Code 클릭
10) 깃허브 본인 프로젝트 홈페이지 새로고침, 깃허브에 파일들이 추가
코드저장소! - 클라우드 저장소
깃에서 관리한 버전과 코드를 저장하는 저장소
다른사람과 소스코드 공유가능
개발자1(깃) <-> 서버(깃허브) <-> 개발자2
"https://(GitHub ID).github.io/(Repository name)/"
“https://(GitHub ID).github.io/”
주소로 바로 연결되게 하고 싶으면 Repository name에 (GitHub ID).github.io 로 생성을 하면 된다.
Public vs Private
접근권한, Public - 공개 Private - 비공개, 특정 초대인원만 접근가능
Add a README file
README 파일을 깃허브에 생성, 프로젝트 설명 및 기능을 작성
리액트 프로젝트를 create-react-app을 통해서 만들면 README.md 파일 자동생성
Add .gitignore
각종 설정이나 프로젝트에 포함된 API KEY값 등 외부에 보이지 말아야 할 내용들이 있을경우 설정
리액트 프로젝트를 create-react-app을 통해서 만들면 .gitignore 파일 자동생성
Git은 로컬에서 버전 관리 시스템을 운영하는 방식.
Github는 클라우드서버에서 로컬에 저장된 프로젝트를 공유하는 방식.
Git으로 로컬 저장소에 작업한 프로젝트 내용을 저장한 뒤, 해당 내용을 Github에 업로드.
Branch
새로운 기능추가 & 테스트 시
Git에서는 저장소가 처음 만들어지면 마스터브랜치(Master Branch; 하늘색)이 생성되고, 여기서 기본적인 버전 관리가 진행된다.
주가 되는 부분은 마스터 브랜치에서 작업하고 중간중간 새로운 기능추가나 테스트 시 브랜치를 추가해서 작업한다.
그리고 브랜치에서 작업한 기능이 괜찮으면 마스터 브랜치에 병합(merge)한다.
git branch 브랜치명(RB_1.0) 기준브랜치명(master)
master 브랜치를 기준으로 RB_1.0이라는 브랜치를 생성
git checkout 브랜치명
현재 브랜치에서 작성한 브랜치명으로 이동
git checkout master
git merge 브랜치명(feature/1)
master 브랜치로 이동한 후, feature/1 브랜치를 master 브랜치로 병합
※ 파일 상태
1) Untracked 상태
2) Tracked 상태
2.1) Staged 상태 : 파일 수정 후 staging area에 올라가 있는 상태
2.2) Unmodified 상태 : 현재 파일이 최신 커밋 파일과 비교하여 바뀐게 없는 상태
2.3) Modified 상태 : 현재 파일이 최신 커밋 파일과 비교하여 바뀐게 있는 상태
▶ Git의 4가지 영역
1) Working Directory (작업영역)
2) Repository (저장소)
3) Index (Staging Area)
4) Stash
.gitignore 파일
git 버전관리에서 제외(Github에 업로드하지않을 파일 목록)할 파일 목록을 지정하는 파일
node_modules은 package.json 안에 명시되어 있기 때문에 굳이 필요없어서 기본적으로 .gitignore 파일에 추가되어있음
동영상파일과 같이 파일의 용량이 크고 굳이 깃허브에서 볼 필요 없는 파일들
보안상의 문제로 깃허브에 올라가서는 안되는 내용들 api key 등
실제 업무에서 깃과 깃허브가 사용되는 과정
코딩알려주는누나
깃허브 입문 개념
한시간만에 끝내는 깃허브(Github) 입문
깃플로우 vs 깃허브플로우
깃플로우