깃(Git)&깃허브(GitHub)
와오,,,
너무나 신기한 깃,,
--
플젝에 앞서 강사님께서 협업을 위해 깃헙 사용법을 간략히 알려주셨다.
하단은 그 내용
◆깃 & 깃허브 설정
Contents
01 깃이란 무엇인가
02 깃 프로그램의 종류
03 깃 설치하기
04 깃 환경 설정
05 버전 만들기
06 깃허브란?
07 지역 저장소를 원격 저장소에 연결하기
08 VSCode에서 깃 사용하기
09 팀 프로젝트를 위한 깃허브 설정
01 깃이란 무엇인가
깃(Git)의 탄생
❖ 깃(Git)
- 2005년 리누스 토르발스가 처음 소개
- 특징
- 컴퓨터 파일의 변경사항을 추적
- 여러 명의 사용자들 간에 해당 파일들의 작업을 조율하 기 위한 분산 버전 관리 시스템
- 개발자들은 깃을 통해 수많은 소스 코드를 효율적으로 관리
깃의 특징
❖ 버전 관리(Version Control)
❖ 백업(Backup)
❖ 협업(Collaboration)
❖ 버전 관리(Version Control)
- 문서를 작성한 뒤 원본도 남겨두고 수정한 내용을 저 장해야 하는 경우
- ‘다른 이름으로 저장’을 주로 사용
☆ 깃을 사용한다면? ☆
파일 이름은 유지하면서 문서를 수정할 때마다 언제 수정했는지, 어떤 것이 변경되었는지 기록 가능
❖ 백업(Backup)
- 백업이란?
- 현재 내 컴퓨터에 있는 자료를 다른 곳에 복제
- USB 디스크, 외장하드, 드롭박스(Dropbox) 등
☆ 깃허브(GitHub) ☆
깃 파일을 위한 원격 저장소 또는 온라인 저장소
❖ 협업(Collaboration)
- 깃허브와 같은 온라인 서비스를 사용하면 여러 사람이 함께 일할 수 있음
02 깃 프로그램의 종류
깃 프로그램
❖ 깃허브 데스크톱(GitHub Desktop)
- 깃허브에서 제공하는 프로그램
- 그래픽 사용자 인터페이스(GUI)로 구현
- 사용이 쉬워 누구나 배울 수 있음
- 기본적인 기능만 제공
❖ 토터스깃(TortoiseGit)
- 윈도우 전용 프로그램
- 윈도우 탐색기의 빠른 메뉴에 추가되는 프로그램
❖ 소스트리(Source Tree) <- 유명. 눈으로 봤을 때 굉장히 예쁨
- 깃의 기본 기능부터 고급 기능까지 제공
- 사용법은 복잡하지만 익숙해지면 자유롭게 깃을 활용할 수 있음
❖ 커맨드 라인 인터페이스(CLI) <- 첫 공부 시간 들 수 있지만 익숙해지면 이게 훨 빠르고 좋음. 이거 쓰기.
- 터미널 창에 직접 명령을 입력해서 깃을 사용하는 방식
- 리눅스 명령어 및 깃 명령어를 알아야 사용 가능
- 대부분의 개발자들은 이 방식으로 깃을 사용
❖ 더 많은 깃 프로그램
** 줄바꿈 표시하는 방식이 달라 오류가 날 수 있음.
별거 아닌데 나중에 난리 날 수 있음.
최초 셋팅만 해주면 잘 될 것.
05 버전 만들기
❖ 버전이란?
- 깃에서 문서를 수정하고 저장할 때마다 생기는 것
- 버전마다 변경 시점과 변경 내용을 확인할 수 있음
- 이전 버전으로 되돌아갈 수 있음
❖ 스테이지와 커밋
작업트리가 우리 작업하는 곳.
깃으로 버전관리 할거야~ 하면 .git이라는 숨김폴더 만들어짐. 스테이지와 저장소가 자동으로 생성됨.
눈에 보이는 작업트리만 건들 것임.
왼쪽에서 오른쪽으로 점점 이동시킬 것임.
스테이지로 이동해라 (명령어1)
버전으로만들어라 (명령어2)
이렇게 두 개 만들면 됨.
버전 만들 준비하는 곳 -> 스테이지.
커밋이 버전으로 만들어라! 이런 소리임.
❖ 작업 트리(working tree)
- 파일 수정, 저장 등의 작업을 하는 디렉터리
- 작업 디렉터리(working directory)라고도 함
- 우리 눈에 보이는 디렉터리를 말함
❖ 스테이지(stage)
- 버전으로 만들 파일이 대기하는 곳
- 눈에 보이지 않음
❖ 저장소(repository)
- 스테이지에서 대기하고 있던 파일들을 버전으로 만들어 저장하는 곳
- 눈에 보이지 않음
❖ 버전 생성 과정
1)작업 트리에서 파일을 수정하고 저장
2)버전을 만들고 싶으면 스테이지에 넣음
$ git add .
3)버전을 만들기 위해 깃에게 ‘커밋(commit)’ 명령을 내림
$ git commit -m ”커밋메시지”
- 커밋 메시지
- 커밋할 때 해당 버전에 어떤 변경 사항이 있었는지 확 인하기 위한 메시지를 기록
- 영어로 작성하는 것이 좋음
본인이 주석단다 생각하면 좋음. 내가 이 버전에서 뭘 했어! 이런 내용.
팀원들도 같이 볼것임. 내가 커밋한 내용 어떤 변경사항들이 있었는지 쓰는 것.
나중 외국인과 할 수도. 한영 전환하기 귀찮기 때문 등. 그냥 남들은 다 영어로 작성한단 소리임.
06 깃허브란?
방금까진 내 컴에서 했던 것이고 깃헙에 올리는 것.
원격 저장소
❖ 지역 저장소(local repository)
- 작업을 수행한 후 커밋을 저장한 컴퓨터
❖ 원격 저장소(remote repository)
- 지역 저장소가 아닌 컴퓨터나 서버에 만든 저장소
- 지역 저장소와 연결되어 있으면서 백업 및 협업을 가능 하게 함
- 인터넷에서 원격 저장소를 제공하는 서비스를 주로 사용
- 깃허브
대표적인 원격 저장소가 깃헙이다~!
깃과 관련, 가장 유명한 원격저장소 깃헙~
특징) 무료. (유료도 있지만 무료)
깃허브란?
❖ 깃허브(GitHub)
- 깃과 관련해서 가장 많이 사용하는 원격 저장소 제공 서비스
❖ 특징
- 무료 및 유료 서비스
- 다양한 오픈 소스 제공
- 깃을 설치하지 않고도 온라인상에서 버전 관리 기능 사용 가능
- 지역 저장소를 온라인상에 백업 가능
- 협업 프로젝트에 사용 가능
- 개발 이력 기록 가능
깃허브 시작하기
❖ 깃허브 가입
- www.github.com
❖ 정보 입력
❖ 이메일 인증
❖ 팀 설정
❖ 관심사 선택
❖ 무료 및 유료 선택
❖ 초기 화면
07 지역 저장소를 원격 저장소에 연결하기
원격 저장소 생성
❖ 저장소(repository) 생성
- 오른쪽 상단 + 버튼 클릭 → New repository 선택
❖ 원격 저장소 주소
https://github.com/아이디/저장소이름
- 원격 저장소 주소만 있으면 어디서든 지역 저장소를 백업하거나 다른 사람과 협업이 가능함
08 VSCode에서 깃 사용하기
지역 저장소와 원격 저장소 연결
❖ 깃허브 계정 로그인하기
❖ 권한 수락
❖ 로그인 확인
❖ 파일 생성
- 예) myProject 폴더 생성 → 깃 초기화
$ git init
이것 안해두면, 밑에서 에러나면 이것 안한것.
이걸 해야 깃 명령어 사용 가능
그 다음 git add로 넣고,
- main.js 파일 생성 후 작업
console.log("Hello!");
❖ 작업한 파일 스테이지에 올리기
- 특정 파일만 스테이징
$ git add 파일명
- 모든 파일 스테이징
$ git add .
❖ 브랜치 변경하기
$ git branch -M main
❖원격 저장소 연결하기
$ git remote add origin 원격_저장소_주소
오류 나는 경우?
-> 이미 연결 되어 있기에 ㅏ른 저장소에 연결 해 줄 수 없단 오류. -> 저장소 해제하고 새 저장소 연결.
--- 저장소 변경 시 ->
$ git remote rm origin
❖ 원격 저장소에 푸시하기
$ git push -u origin main
---
3. 버전으로 생성하기 -> 커밋
git commit -m "first commit"
1. 작업(=코딩) -> 저장
2. 스테이징
3. 버전으로 생성하기 -> 커밋
$ git commit -m "first commit"
---
수정 후엔?
->
1. 파일 수정 후 저장
2. 스테이징
$ git add .
3. 버전 생성 - 2번 생략 가능. -m 을 -am으로 바꿔주면 됨. 두개 합친단 소리.
$ git commit -am "second commit"
4. 깃헙업로드
$ git push origin main
리드미 파일 꾸미는 방법 하면 나옴
필요한 것 다 셋팅하고 올리기.
sass 쓸거면 그것 미리 깔고. 그다음 git add . 하고 올리기.
좀 더 규칙을 주어야 할 것.
main 브랜치 -> 최종 파일.
절대 main에 올리면 안됨!
main이란 브랜치에 푸쉬 절대 하먄 안됨! 팀원들은!
팀원들은 계정 하나 만들어 푸쉬해야 함.
main은 출시하는 최종 프로젝트다! 알면 됨.
작업 중인애 절대 엎으면 안되고.
큰 일 납니다. 프로젝트 다 난리가 나요. main은 난 모른다 생각하면 됨.
팀장은 브랜치 보호설정 하기.
팀원이 실수할 수도 있으니.
64p 다 클릭하진 않아도 될 듯.
최소 한명 이상이 승낙 해야 머지 가능.
승인은 책임을 져야 함.
숫자 많아질 수록 힘들 것
팀장이 설정 해주면 됨.
---
탐원이 할 것? ( & 팀원도 )
❖ 팀원 본인 브랜치 생성 <- 매우 중요. 나의 계정임. 자기 브랜치에서만 코딩하기. 굉장히 중요한 작업임 별 다섯개~ .
• 예) sooa 브랜치 생성
$ git branch sooa
❖ 브랜치 변경(master → sooa)
$ git switch sooa
❖ 스테이지에 올리기
$ git add .
❖ 커밋하기
$ git commit -m "sooa first commit"
❖ 깃허브 저장소에 파일 push
$ git push origin 브랜치이름
• 예) sooa 브랜치에 파일 업로드
$ git push origin sooa
❖ 깃허브 사이트 → Pull request ( 편지를 쓰는 것임. 팀원들에게. 나 이거 잘 만들었는데 괜찮은 것 같으면 올려주면 안되겠니? 하는 것. 팀원 팀장 모두 .
사이트 내 브랜치 내 걸로 변경 하고 편지 쓰면 됨. 상단은 제목 하단은 내용
누구나 편지 다 확인 가능.
풀리퀘스트 -> 편지 올 때 옆에 숫자 뜸. 어떤 편지 왔는지 뜸.
회사에서 사원들은 절대로 누르면 안되는 버튼....
우리회사 최종 사이트에 신입사원인 내 에러덩어리 코드 업로드 되는 것... OMG,,,,,, 검증도 안하고 올려버린다면 ?
뉴스 나오는거임..
최종 권한자인 팀장만 올릴 수 있음. 잘못 누르는 순간 망하는 것임.
메인이 바뀌었는지 안바뀌었는지 몰라. 작업 끝나고 파일 올려야
코드 작성 중 main 브랜치 변경 발생시 -> 내 것 다 저장하고 스테이징 하고 main브랜치로부터 최신파일 다운로드(동기화)
이런 작업을 안하면? -> 중간 최신버전 바뀌었는데 반드시 최종버전 다운로드 받고 해야 함. 최신버전 있는지 없는진 몰라도 일단 다운 받고 시작하는 것임. 그게 풀..
돌이킬 수 없음...
❖ [전체] 기존에 작성하던 코드 저장 및 스테이징
$ git add .
❖ [전체] 커밋하기
$ git commit -m "second commit"
[전체] 최신 프로젝트 pull
❖ main 브랜치로부터 최신 파일 다운로드(동기화)
$ git pull origin main
[전체] 작업 완료 파일 업로드
❖ 깃허브 저장소에 파일 push
• 예) teamMaster 브랜치에 파일 업로드
$ git push origin teamMaster
❖ Pull request 요청하기
--