Github에 프로젝트 올리기 (Git과 Github란?)

bethe·2022년 8월 29일
6

Git

목록 보기
1/8

1. Git과 Github란?

1.Git

본인의 코드와 그 수정내역을 기록하고 관리하도록 돕는 버전 관리 프로그램.
로컬에서 프로젝트의 기록을 자동적으로 관리할 수 있도록 해준다.
git을 통해 브랜치를 생성하고 이전 브랜치로 복구, 병합, 삭제가 가능하다.

2. Github

git 저장소를 관리하는 클라우드 기반 호스팅 서비스.
로컬에서 관리한 것을 중앙저장소(Github)에 올려 관리하는 것으로, 다른 사람과 소스코드 공유가 가능하다.

😃 Git과 Github로 local에서도 중앙저장소에서도 각자 버전 관리가 가능하게 됨


2. Git과 Github 브랜치에 commit하여 버전 관리하기

1) Git과 Github에 commit하는 방법 (실습)

🔎 Git

  1. 레포지토리 생성 :
    Github에 가입을 하고 자신의 repositories에 new를 하여 repository를 만들자. (나는 스프링부트 White 프로젝트를 관리할 예정이다.)

  2. Project 폴더 열기 :
    관리할 Project에서 Alt+Enter를 누르면 그 프로젝트의 Properties가 나온다. 이미지의 아아이콘을 클릭하면 Project가 있는 폴더(workspace)가 나온다.

  3. 폴더에서 빈 화면에 오른쪽 클릭을 해서 Git bash 실행.

  4. git init : Git 저장소 초기화

  5. git add : 프로젝트의 버전 저장(snapshot)
    . : 모든 파일

  1. git commit : 하드디스크에 영구히 저장하겠다
    -m : 옵션역할을 함. 여기에서는 주석(메세지)를 남기는 용도로 사용됨.

  1. commit 실행을 하면 github에서 어떤 계정인지 묻는다.
git config --global user.email "깃허브 이메일 주소"
git config --global user.name "깃허브 이름"

을 그대로 입력해준다.

  1. git commit 을 다시 실행하면 commit이 완료된다.
    git log : log로 commit된 것을 확인할 수 있다.

🔎 Github

  1. git remote add origin (레포지토리 주소) : 원격지(origin) 연결
    주소를 입력할 땐 shift+insert로 붙여넣기 해야 한다.

연결을 삭제하고 싶을 때 : git remote remove origin remove는 rm으로 단축키로 가능.

  1. git push origin (branch이름) 를 입력하면 github repository에 프로젝트가 업로드된다.
    이 때 맨 뒤에 branch이름을 입력해야 한다. (master, main 등)

  2. 첫 업로드라면 git과 github를 연동하라며 로그인하라는 창이 뜰 것이다. 로그인해서 연동시켜주면 업로드가 무사히 된다.


2) Git과 Github의 작동원리

작업환경은 매 순간마다 코드가 수정되며 바뀐다.

풍경으로 비유를 들어보자. 어느 순간의 풍경(아침 풍경)을 기록하고 싶을 때가 있다. 그러면 우리는 사진을 찍는다. 이 사진(snapshot)은 임시메모리 공간인 'index'에 기록된다.
다른 순간의 풍경(저녁 풍경) 또한 기록하고 싶어진다. 그래서 새 사진을 찍는다. 그러면 원래 있던 사진이 index에서 사라지기 때문에, index에 있는 아침 풍경 사진을 사진첩에 저장한다. 이 사진첩을 'head'라고 부른다. 이후 저녁 풍경 또한 head에 저장한다.

즉 로컬에서 변화하는 코드를 기록하고 저장하는 것이 Git이고, 이때 사용되는 명령어가 init(작업환경 세팅), add(임시메모리에 저장), commit(하드디스크에 영구히 저장)이다.

이 때, 헤드에 저장된 코드는 브랜치라는 어떠한 개념적인 줄기로 타임라인을 따라 기록된다.

Github는 로컬에서 commit된 version을 클라우드 저장소(중앙저장소)에 올리는 것이다.

profile
코딩을 배우고 기록합니다. 읽는 사람이 이해하기 쉽게 쓰려고 합니다.

0개의 댓글