0. version control system -Git
개요
- 학습 목표
- Git의 배경 및 기능 이해
- Git과 Github의 차이
- version control system의 필요성
- 파일 변경 이력 확인 가능
- 이전 버전으로 복귀 가능
- 변경 내용 파악 용이
- git으로 관리되는 파일은 github, gitlab, bitbucket 등 여러 가지 저장소로 백업, 협업 가능
- Git
- 분산형 버전 관리 시스템
- 특정 시점의 백업 복사본을 스냅샷
- 스냅샷을 만드는 작업을 commit
- Github
- Git : 소스코드 기록 추적하는 버전 관리 시스템
- Github : git repository를 관리할 수 있는 클라우드 서비스
- git으로 관리하는 프로젝트를 올려둘 수 있는 장소
- 오픈소스에 기여할 수 있고 commit 기록으로 변경 코드 확인 가능
- Git repository : git으로 관리되는 폴더
- local repo에서 혼자 작업하고 remote repo에서 공유 가능
- react 원격 저장소를 내 원격 저장소에 가져오는 것을 fork
- 그것을 다시 내 local로 가져오는 것을 clone
- 변경 내용을 commit으로 저장하고 remote repo에 올려주는 것을 push
- github에서 pull request로 변경사항 반영을 요청
- 반대로 remote에서 변경된 사항을 local로 가져오는 pull도 존재
Git이란?
- Linux OS
- 리누스 토르발즈가 linux를 개발하다가 github를 만들었다
- Git
- 파일을 관리해주는 프로그램
- 버전 관리
- 파일 백업
- 협업 공유
- 버전 관리
- git이 관리하는 폴더에 문서를 만들면 git으로 문서 버전 관리 가능
- 파일 백업
- 원격 저장소에 백업 가능
- 협업 공유
- 수정 부분 협업하여 공유
- Git & github
- git은 로컬에서 버전 관리 프로그램
- github는 온라인 원격 저장소 기능 제공
- add, commit, push : 원격 저장소에 업로드 과정
- fork, clone : 원격 저장소로부터 로컬로 다운로드 과정
- pull request : 변경 사항 반영 요청
- merge : 작업 취합
- 파일을 관리해주는 프로그램
1. Git 설치
개요
- 학습 목표
- Git 설치 및 환경 설정
- SSH 키를 github에 등록
Git 설치
- Git for windows
- google에서 git for windows 검색으로 다운로드
- 설치 과정에서 use visual studio code as git’s default editor로 설정
- git bash 들어가서 git 입력하여 확인
- Git for ubuntu
- 터미널에서 sudo apt install git
- git —version으로 확인
- Git for MacOS
- 터미널에서 git 입력
- 다시 git 입력하여 확인
- 터미널에서 git 입력
Git 환경 설정 및 SSH 등록
- 사용자 정보
- github에 사용한 사용자 이름과 이메일 주소 사용
- 터미널에서(git bash)
$ git config --global user.name "나의 사용자 이름" $ git config --global user.email "내 이메일 주소"
- —global 옵션으로 한 번만 설정함
- 프로젝트마다 다르게 하고 싶다면 global 옵션을 빼고 설정
- 에디터 설정
- $ git config --global core.editor nano
- commit, merge 할 때 메시지가 나오는데 vi로 기본 설정을 편한 대로 바꾼다.
- SSH 등록
- ssh(secure shell) : 보안 강화된 shell 접속
- 터미널에서 다른 pc로 접속하거나 요청할 때 사용하는 비대칭키
- SSH 키 생성
- ssh-keygen
- ~/.ssh/에 id_rsa, id_rsa.pub 파일을 생성
- id_rsa.pub는 공개키 id_rsa는 개인 키, 비밀 키
- 공개 키 복사
- cat ~/.ssh/id_rsa.pub
- 공개키를 복사
- github 공개키 등록
- github 세팅에서 SSH and GPG keys
- new ssh key 클릭
- 제목과 공개키를 입력하고 비밀번호로 인증
- 테스트
- repo에서 코드 → ssh 복사하여
- 터미널에서 git clone + [복사한 코드]
- 정상 다운로드 확인
- 안될 경우 키 삭제하고 다시 공개 키 복사해서 입력하고 붙여 넣기 해서 엔터를 누르고 등록
2. Git workflow
개요
- 학습 목표
- 혼자 workflow
- 함께 workflow
- github의 기능과 git 명령어 사용
- git의 3가지 상태
- remote repository를 페어와 공유 협업
- 충돌 발생 대처
- commit 되지 않은 변경 사항 취소(reset HEAD <file>, checkout — <file>)
- git 개념(branch, merge, origin과 upstream 차이)
혼자 작업 workflow
- remote에 있는 다른 repo에서 fork를 통해 나의 remote repo에 가져옴
- repo 우측 상단 fork
- create fork
- local repo에 clone을 통해 가져오기
- git clone + [repo 주소]
- 작업을 하여 add를 통해 staging area에 올려놓기
- git status로 staging area와 untracked file 확인
- git restore+[파일명] commit되지 않은 파일 변경사항 취소
- git add + [파일명] : modified 된 파일을 staging area에 올림(git add .로 전체 올리기 가능)
- commit을 통해 local repo에 올려놓기
- git commit -m ‘~~’ : comment를 남겨 local repo에 올림(날짜, 작업자, 메시지 기록)
- git add 한 상태에서 코드 수정하면 staged 상태와 modified 상태 두 개 존재
- 이 상태에서 commit 하면 git add 한 것만 올라가기 때문에 add를 통해 최신판 staging 해야 한다.
- restore 하면 변경 사항 폐기할 수 있다.
- unmodified : commit 된 파일 수정 안 한 상태
- modified : commit 된 파일 수정 상태
- staged : commit이 가능한 상태
- commit 한 상태에서 commit 취소하려면 git reset HEAD^로 최신 commit 취소
- HEAD~1과 같다
- git reset —soft : working directory와 staging area는 그대로인데 local repo만 변경
- git reset —mixed : working directory는 그대로인데 staging area와 local repo 변경
- git reset —hard : 모두 변경
- push를 통해 remote repo에 올리기
- git push origin [branch명] 명령어(origin: remote repo 이름)
- git push origin master(main 기본 branch)
- git log를 통해 commit 된 기록 확인 가능(q로 나가기)
- pull request를 통해 다른 remote repo에 업로드
- 변경 사항 타인에게 알리기(PR)
- remote repo에 compare & pull request 버튼 존재
- 변경사항 설명 적기
함께 작업 workflow
- 내 컴퓨터에서 생성한 directory를 git init으로 git 관리 상태로 만들기
- git init : 디렉터리를 git repo로 만들거나 새로운 repo로 만들기
- git direcotry를 remote repo와 연결
- git remote add origin [repo 주소]
- 페어와 나의 변경 사항을 remote repo로 공유
- git remote add pair [타인 repo 주소]
- git remote -v를 통해 local repo와 연결된 모든 remote 확인 가능
- git pull pair master를 통해 페어의 작업을 가져와서 자동 merge
- 자동 병합이 실패하면 merge conflict 발생
- git status로 어떤 파일 충돌인지 확인
- 파일 열어서 수정
- current change (내가 수정한 파일)
- incoming change (remote repo 내용)
- both changes (모두 수용)
- 직접 수정
- 수정 완료하고 merge commit을 하기 위해 staging area에 추가
- git add
- git commit
- git push origin main
- 자동으로 commit 메시지 남겨진다
3. Simple Git workflow
Simple git workflow
- github에서 repo를 각자 fork
- git clone [repo주소]로 각자의 로컬로 가져오기
- git remote add origin/pair [주소]로 양쪽 연결
- 드라이버가 git push origin main으로 자신 remote에 올림
- 내비게이터였던 사람이 git pull pair main으로 가져오고 다시 드라이버 역할
- 드라이버였던 사람이 git pull pair main으로 가져오고 반복
'Backend boot camp > Session1' 카테고리의 다른 글
[JAVA] 기초 - 배열 (0) | 2022.09.06 |
---|---|
[JAVA]기초 - 변수, 타입, 문자열, 연산자, 콘솔 입출력 (0) | 2022.09.06 |
[Linux] 기초 (0) | 2022.09.06 |
[Publishing]HTML, CSS (0) | 2022.08.23 |
Development (0) | 2022.08.21 |