배포를 위한 Git
1) Git ?
- 체계적인 개발과 프로그램의 배포를 도와주는 형상 관리 도구, 버전 관리 시스템
2) 형상 관리 도구 ?
- 프로젝트 개발 단계에서 소스코드의 버전을 효과적으로 관리 가능
- 같은 파일을 여러명이서 동시에 작업
3) Git 사용에 필요한 개념
Repository ?
- 모든 파일의 변경 사항을 저장할 수 있는 저장소
- Local Repository: 컴퓨터에 존재하는 Repository 그 자체
- Remote Repository: GitHub와 같이 Git 서버에서 제공되는 Repository
Commit ?
- 이전 변경사항 기준으로 새로 변경된 내용을 기록하는 단위
Branch ?
- 여러 사람이 하나의 레파지토리에서 작업을 할 때 작업 내용이 충돌하지 않도록 해주는 개념
(참고자료 : https://backlog.com/git-tutorial/kr/stepup/stepup1_1.html)
누구나 쉽게 이해할 수 있는 Git 입문~버전 관리를 완벽하게 이용해보자~ | Backlog
누구나 쉽게 알 수 있는 Git에 입문하신 것을 환영합니다. Git을 사용해 버전 관리를 할 수 있도록 함께 공부해봅시다!
backlog.com
4) Git 명령어
git init
- Git 저장소를 초기화 하여 해당 프로젝트 폴더를 Git repository 로 만든다
git add
- 지금 변경한 변경 사항을 스테이징 영역(Staging Area)에 올린다
- - git add . : 모든 변경사항을 올린다
- - git add app.js : app.js 변경사항만 올린다
git commit
- 스테이징 영역에 올라가 있는 변경사항을 하나의 기록(History)으로 남긴다
git remote add
- git remote add <name> <url> 명령어로 Local Repository 에 <name>이라는 이름의
- Remote Repositiry 를 추가할 수 있다
- <url> 에는 Remote repositiry의 주소가 들어감
git push
- Local Repository에 존재하는 Push되지 않은 변경사항을
- Remote Repository에 업로드 한다
git clone
- Remote Repository로 부터 프로젝트를 복제한다.
git pull
- Remote Repository에 새로 올라온 변경사항을 Local Repository로 가져온다
.gitignore ?
- 프로젝트 최상단에 두고 파일내용을 넣으면 git 변경사항에 속하지 않게 해준다.
5) 배포시 Git의 활용
처음 배포 시
- git clone
- npm install
- 서버 켜기
이미 배포된 코드를 최신코드로 재시작
- git pull
- npm install (필요시)
- 서버 재시작
6) 배포 시 Git의 장점
- 형상 관리 도구를 사용하는 이유와 비슷
- 원하는 때에 원하는 형상으로 서버를 켤 수 있다
- 서버를 최신 형상으로 올렸는데 갑자기 예기치 못한 에러가 발생시
- 곧바로 이전 형상으로 돌려서 다시 서버를 켤 수 있다
- (git checkout 기능)
GitHub에 Repository 올리기
1) GitHub 웹사이트 접속 및 로그인
https://github.com/
2) GitHub에 Repository 생성
- 우측 상탄 프로필 옆 + 버튼을 눌러 New repository 페이지로 이동
- 레포지토리 생성 정보 입력 및 생성
- Repository name : nodejs_spa_mall
- 원래 플젝트 이름과 달라도 상관은 없다.
- (Remote Repository의 이름이기 때문)
- Description : 생략 또는 자유롭게 작성
- Public or Private : Public
- Public ? - 아무나 열람 가능하지만 민감한 정보가 없다면 공개 해도 좋다.
- Initialize this repository with: 아무것도 체크 x
- GitHub가 Reository를 만들어준 뒤 기본 파일을 추가할지 묻는 항목.
- 이미 존재하는 Local Repository가 있기에 체크하면 안된다
- 체크하게 되면 Remote Repository에 다른 Commit History가 생긴다
=> Local Repository에 있는 Commit History가 생겨나게 되는데
Remote Repository에 올리려고 시도하는 경우 충돌이 생겨남.
3) SSH Key 발급받기
- 생성한 Remote Repository를 사용하기 위해선 Local 환경에서
- GitHub를 사용하기 위해 인증받아야 한다.
- 기존에는 Private Repository를 접근하거나, Commit, Push 등의 기능을
- 사용하기 위해선 로그인 방식을 채용했으나, 21년 8월 13일 부터
- GitHub를 인증할 때 계정을 로그인하는 방식으로 진행 할 수 없다.
- 현재는 사용하기 위해 인증받기 위해
- Personal access token을 등록 하거나,
- SSH를 등록하는 방법이 있는데 지금은 이방법을 써서 인증 받도록 하자
- 터미널에서 SSH key 발급
- Window에선 Git Bash, mac에선 터미널을 이용해서 SSH Key를 발급 받는다
ssh-keygen -t rsa -b 4096 -C "GitHub E-mail"
- RSA 키를 등록할 때 위치를 지정하거나, 패드워드 없이 기본값으로 설정
- ~/.ssh 경로에 rea파일이 생성
- 설정 페이지로 이동
- 정상적으로 SSH Key를 발급받았다면 개인키를 GitHub 웹페이지
- 우측상단 프로필을 누르고 Setting 페이지로 이동한다
- 좌측에 있는 SSH and GPG keys 페이지로 이동한다
- 우측 상단에 있는 New SSH Key를 누르고 등록페이지로 이동한다
- SSH Key를 복사후
cat ~/.ssh/id_rsa.pub
- 입력창을 보면
- Title : SSH Key의 이름이다. 원하는대로 설정하고
- key type : 등록하려는 Key의 타입을 설정한다 (Authentication Key)
- Key: 이전단계에서 복사한 SSH Key의 정보를 등록한다.
- 마지막으로 Add SSH Key를 누르면 완료
4) Local Repository에 Remote Repository로 올리기
- Remote Repository 주소 복사하고
- Remote Repository를 Local Repository에 추가 : git init & git remote add
git init
git remote add origin <github 페이지에 나오는 주소>
git remote add origin git@github.com:archepro84/nodejs_spa_mall.git
- Local Repository를 Remote Repository에 올리기 : git add & git commit & git push
- 프로젝트에서 Add -> Commit -> Push 순으로 진행
git add .
git commit -m "first commit"
// 모든 변경된 파일을 등록하고, first commit이라는 커밋 메시지로 업로드한다라는 뜻
- 등록한 커밋을 Remote Repository에 올리는 명령어
git push -u origin master
// 해당 명령어 입력시에 오류가 발생한다면 master 대신에 main으로 명령어를 수정
GitHub에서 확인해보자 !
5) 최신 변경사항 올려보기
- 변경사항이 있는지 확인
git status
- modified : 수정된 파일의 개수를 나타낸다.
- Untracked files : 아직 Git을 통해 관리하지 않고 있는 상태에 있는 파일
- 변경사항을 Staging Area에 올리고 Commit
git add .
git commit -m "프론트엔드 코드 추가"
- Push
git push
좀 더 알아보자 !
1. Git에서 Branch를 쓰는 법과 쓰는 구체적인 이유
2. GitHub에서의 PR 이란?
참고할만한 자료들
https://backlog.com/git-tutorial/kr/intro/intro1_1.html
누구나 쉽게 이해할 수 있는 Git 입문~버전 관리를 완벽하게 이용해보자~ | Backlog
누구나 쉽게 알 수 있는 Git에 입문하신 것을 환영합니다. Git을 사용해 버전 관리를 할 수 있도록 함께 공부해봅시다!
backlog.com
https://learngitbranching.js.org/?locale=ko
Learn Git Branching
An interactive Git visualization tool to educate and challenge!
learngitbranching.js.org