Git

깃(Git) & 깃허브(GitHub)

ddorongg 2022. 12. 19. 19:34

깃(Git)

• 컴퓨터 파일의 변경사항을 추적

• 여러 명의 사용자들 간에 해당 파일들의 작업을 조율하기 위한 분산 버전 관리 시스템

 

- 개발자들은 깃을 통해 수많은 소스 코드를 효율적으로 관리

 

깃의 특징

버전 관리(Version Control) 

문서를 수정할 때마다 언제 수정했는지, 어떤 것을 변경했는지 편하고 구체적으로 기록하기 위한 버전 관리 시스템

 

백업(Backup) 

• 현재 컴퓨터의 자료를 인터넷 상의 공간(원격 저장소)에 백업

• 주로 깃허브(GitHub) 사용

 

협업(Collaboration)

• 원격 저장소를 기준으로 여러 사람이 함께 일할 수 있음

• 누가, 언제, 어느 부분을 수정했는지 기록 가능

 

버전 관리(Version Control)

• 문서를 작성한 뒤 원본도 남겨두고 수정한 내용을 저장해야 하는 경우

• ‘다른 이름으로 저장’을 주로 사용

 

깃을 사용한다면?

파일 이름은 유지하면서 문서를 수정할 때마다 언제 수정했는지, 어떤 것이 변경되었는지 기록 가능

 

 

백업(Backup)

• 현재 내 컴퓨터에 있는 자료를 다른 곳에 복제

• USB 디스크, 외장하드, 드롭박스(Dropbox) 등

☆ 깃허브(GitHub) ☆ 깃 파일을 위한 원격 저장소 또는 온라인 저장소

 

 

협업(Collaboration)

• 깃허브와 같은 온라인 서비스를 사용하면 여러 사람이 함께 일할 수 있음

☆ 깃허브(GitHub)의 장점 ☆

▪ 팀원들이 파일을 편하게 주고받으면서 일할 수 있음

누가 어느 부분을 수정했는지 기록에 남음


깃 프로그램의 종류

깃허브 데스크톱(GitHub Desktop)

• 깃허브에서 제공하는 프로그램

• 그래픽 사용자 인터페이스(GUI)로 구현

• 사용이 쉬워 누구나 배울 수 있음

• 기본적인 기능만 제공

 

토터스깃(TortoiseGit)

• 윈도우 전용 프로그램

• 윈도우 탐색기의 빠른 메뉴에 추가되는 프로그램

 

소스트리(Source Tree)

• 깃의 기본 기능부터 고급 기능까지 제공

• 사용법은 복잡하지만 익숙해지면 자유롭게 깃을 활용할 수 있음

 

 

커맨드 라인 인터페이스(CLI) - 이게 젤 편함

• 터미널 창에 직접 명령을 입력해서 깃을 사용하는 방식

• 리눅스 명령어 및 깃 명령어를 알아야 사용 가능

• 대부분의 개발자들은 이 방식으로 깃을 사용

 

더 많은 깃 프로그램

https://git-scm.com/downloads/guis


깃 설치하기

깃 설치하기 - Windows

https://git-scm.com/

 

Git

 

git-scm.com

 

윈도우 검색 창에 git 입력 후, [Git Bash] 클릭

 

깃 설치하기 - macOS

homebrew 설치하기

/bin/bash -c "$(curl -fsSL

https://raw.githubusercontent.com/Homebrew/install/HEAD/i

nstall.sh)"

 

깃 설치하기

$ brew install git

 

Git Bash 화면에 다음 명령어 입력

$ git


깃 환경 설정

사용자 정보 입력

• 사용자 이름

$ git config --global user.name "Sooa"

 

• 사용자 이메일

$ git config --global user.email "Sooa@gmail.com"

 

줄바꿈 문자열

• Windows

$ git config --global core.autocrlf true

 

• Mac

$ git config --global core.autocrlf input

 

줄바꿈 문자열

• \r : carriage return

• \n : line feed

줄바꿈 문자열 문제 해결

• core.autocrlf


버전 만들기

버전이란?

• 깃에서 문서를 수정하고 저장할 때마다 생기는 것

• 버전마다 변경 시점과 변경 내용을 확인할 수 있음

• 이전 버전으로 되돌아갈 수 있음

 

깃은 어떻게 파일 이름은 그대로 유지하면서 수정 내역을 기록할까?

 

스테이지와 커밋

 

작업 트리(working tree)

• 파일 수정, 저장 등의 작업을 하는 디렉터리

• 작업 디렉터리(working directory)라고도 함

• 우리 눈에 보이는 디렉터리를 말함

스테이지(stage)

• 버전으로 만들 파일이 대기하는 곳

• 눈에 보이지 않음

저장소(repository)

• 스테이지에서 대기하고 있던 파일들을 버전으로 만들어 저장하는 곳

• 눈에 보이지 않음

 

버전 생성 과정

1) 작업 트리에서 파일을 수정하고 저장

 

2) 버전을 만들고 싶으면 스테이지에 넣음

$ git add . - 모든파일

$ git add hello.txt = 해당 파일만 스테이지 공간에 올라감

 

3) 버전을 만들기 위해 깃에게 ‘커밋(commit)’ 명령을 내림

$ git commit -m ”커밋메시지”

커밋 메시지

  • 커밋할 때 해당 버전에 어떤 변경 사항이 있었는지 확인하기 위한 메시지를 기록

    (주석같은 느낌으로 변경사항들 작성 팀원들도 보는 것)

  • 영어로 작성하는 것이 좋음

    (한국어도 가능하긴 함) (남들은 다영어로 씀 ,,, 영어공부 해야댈듯 ;)

 

4) 스테이지에 있던 파일을 저장소에 새로운 버전으로 저장

 


 

깃허브란?

원격 저장소

 

지역 저장소(local repository)

작업을 수행한 후 커밋을 저장한 컴퓨터

 

원격 저장소(remote repository)

• 지역 저장소가 아닌 컴퓨터나 서버에 만든 저장소

• 지역 저장소와 연결되어 있으면서 백업 및 협업을 가능 하게 함

• 인터넷에서 원격 저장소를 제공하는 서비스를 주로 사용

    - 깃허브

 

두 가지만 알면 됨 add & commit

 

 

깃허브(GitHub)

• 깃과 관련해서 가장 많이 사용하는 원격 저장소 제공 서비스

 

특징

• 무료 및 유료 서비스

• 다양한 오픈 소스 제공

• 깃을 설치하지 않고도 온라인상에서 버전 관리 기능 사용 가능

• 지역 저장소를 온라인상에 백업 가능

• 협업 프로젝트에 사용 가능

• 개발 이력 기록 가능

 

깃허브 가입 

www.github.com

 

GitHub: Let’s build from here

GitHub is where over 94 million developers shape the future of software, together. Contribute to the open source community, manage your Git repositories, review code like a pro, track bugs and feat...

github.com

 

깃허브 시작하기

 

지역 저장소를 원격 저장소에 연결

원격 저장소 생성

저장소(repository) 생성

• 오른쪽 상단 + 버튼 클릭 → New repository 선택

 

 

원격 저장소 이름

https://github.com/아이디/저장소이름

 

원격 저장소 주소만 있으면 어디서든 지역 저장소를 백업하거나 다른 사람과 협업이 가능함!

 

VSCode에서 깃 사용하기

지역 저장소와 원격 저장소 연결

깃허브 계정 로그인하기

 

권한 수락

 

로그인 확인

 

파일 생성

• 예) myProject 폴더 생성 → 깃 초기화

$ git init

 

• main.js 파일 생성 후 작업

console.log("Hello!");

 

작업한 파일 스테이지에 올리기

특정 파일만 스테이징

$ git add 파일명

 

• 모든 파일 스테이징

$ git add .

 

브랜치 변경하기

$ git branch -M main

 

원격 저장소에 연결하기

$ git remote add origin 원격_저장소_주소

(내 깃허브 주소 복붙해 놓기)

 

원격 저장소에 push 하기

$ git push -u origin main

 

실행 결과

 

[팀원] 작업하기

팀원 본인 브랜치 생성

예) 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

 

[팀원] pull request

메인에 푸쉬하면 절대 안 됨 계정을 하나 만들어서 푸쉬해야 함 

메인은 우리 프로젝트의 최종본

수정본은 들어가면 절대 안 됨!!

 

[전체] pull request 확인

 

 

 

 

Merge pull request 버튼 활성화

 

[팀장] merge 버튼 클릭

팀원은 merge 하지 않는 것이 좋음

 

merge 완료

 

코드 작성 중 main 브랜치 변경 발생

[전체] 기존에 작성하던 코드 저장 및 스테이징

$ git add .

 

[전체] 커밋하기

$ git commit -m "second commit"

 

[전체] 최신 프로젝트 pull

main 브랜치로부터 최신 파일 다운로드(동기화)

$ git pull origin main

 

[전체] 작업 완료 파일 업로드

깃허브 저장소에 파일 push

• 예) teamMaster 브랜치에 파일 업로드

$ git push origin teamMaster

 

Pull request 요청하기

 

 

 

 

 

새싹DT 기업연계형 프론트엔드 실무 프로젝트 과정 10주차 블로그 포스팅