Git과 GitHub

Psj·2021년 3월 16일
1

git과 github

목록 보기
1/1
post-thumbnail

버전관리와 버전관리 시스템이란?

  • 게임을 하고 저장하면 다음에 다시 게임할때 저장한 데이터를 불러와 게임하는것과 비슷한 원리이다.

  • 텍스트파일 작업시 ctrl+z를 눌러 이전 작업으로 돌아갈수 있게 하는것과 비슷하다.

  • 이렇게 내가 원하는 시점(버전)으로 이동할수 있게 해주는 것을 버전관리라고 하고 이것을 도와주는 툴을 버전관리 시스템이라고 한다.

Git

  • 개발은 팀단위로 프로젝트를 하기때문에 많은 인원이 한 프로젝트의 데이터를 추가/삭제/업데이트를 하면 어떤것이 진행중이고 최종업데이트 파일인지 확인할 길이 막막해진다.

    이때 각자가 깃발을 만들어 원하는 시점마다 각각의 깃발을 꽂고, 깃발이 꽂힌 시점으로 자유롭게 이동할 수 있다면 편하게 새로운 소스코드를 추가하거나 삭제할 수 있을것이다.

    이를 가능하게 해주는 소스코드 버전관리 시스템이 바로 Git이다.

GitHub

  • Git으로 저장한 데이터를 로컬컴퓨터에서만 사용한다면 나 혼자만 사용할 수 있다.

    만약 우리가 사진을 네이버클라우드에 올려놓으면 클라우드 아이디만 알면 누구나 다운받아 사진을 이용할 수 있듯이 GitHub은 우리가 Git으로 관리한 소스코드 프로젝트를 팀원들과 공유할 수 있게 전문적으로 호스팅할 수 있게 도와주는 사이트 중 하나이다.

Git 설치 및 GitHub가입

  • Git을 사용하기 위해선 설치를 해야한다.
    https://git-scm.com/
    위 사이트에서 자신의 운영체제에 맞게 설치하면된다.

  • GitHub을 사용하기위해서는 GitHub에 가입해야한다.
    https://github.com/
    위 사이트에서 깃헙에 가입을 한다.

Git 명령어

  • git init
    터미널로 내가 만든 소스코드들이 들어있는 폴더에 들어가서 해당 명령어를 입력하면 [.git]이라는 숨김폴더로 로컬저장소가 새로 생성된다.
    로컬저장소가 생성되었으므로 우리는 이제 버전관리를 시작할 수 있다.

    iTshirt-cat이라는 폴더에 git init명령어를 입력하여 [.git] 로컬저장소를 생성했다.

로컬저장소는 생성했지만 우리는 GitHub이라는 사이트에서 버전관리를 할것이기때문에 아래의 명령어로 내 GitHub계정의 eamil과 username을 동일하게 입력한다.
  • git config --global user.email "이곳에 깃헙 이메일 입력"
  • git config --global user.name "이곳에 깃헙 이름 입력"

입력을 했다면 나의 로컬저장소와 GitHub이 연결된것이다!

커밋 만들기!

커밋은 게임에서의 저장이라고 생각하면된다.

내가 미리 만들어 놓은 README.txt 파일이다.

  • git add 커밋에 추가할 파일이름
    git add 명령어로 커밋할 파일을 선택한다.
  • git commit -m "어떻게 변경했는지 이곳에 적는다"
    -m은 messag의 약자이다.

위와같이 "사이트 설명 추가"라는 커밋메세지로 먼저 처음생성된 기존파일을 저장한다

이제 게임을 저장하듯이 아래와같이 README.txt 내용을 수정하고 다시 커밋을 해보겠다.


이렇게 내용을 변경하고 README.txt를 저장한다.

위 과정과 동일하게
1. git add 커밋에 추가할 파일이름
2. git commit -m "어떻게 변경했는지 이곳에 적는다"

  • git log
    해당 명령어를 입력하면 우리가 저장했던 커밋의 목록이 쭉 나오게된다.

  • git checkout 커밋주소
    git log명령어를 입력하여 나온 커밋중에 돌아가고싶은 커밋이 보이면
    commit 옆에 길게써있는 주소를 복사하여 git checkout 커밋주소를 입력하면 해당 커밋으로 돌아가게된다.

    나는 "사이트 설명 추가" 커밋으로 돌아가기 위해
    git checkout 0e2b21207fd4594a13a8c26ceffc47226fdf311f 을 입력했다.

해당 명령어를 입력하고 다시 git log를 입력하니 "사이트 설명 추가" 커밋만 남은것을 확인할 수 있다.

그리고 다시 README.txt를 열어보면 아래와같이 우리가 수정전에 커밋했던 그 파일로 돌아가 있는것을 확인 할 수 있다.

  • git checkout -
    최신커밋으로 돌아가기 위한 명령어이다.


해당 명령어를 입력하고 git log를 입력하면 최신커밋으로 다시 돌아간것을 확인할 수 있다.

GitHub에 원격저장소 만들기

협업을 하기 위해서는 로컬에서 버전관리를 하는것이 아닌 팀원들이 모두 접근할수 있는 원격저장소가 필요하다. 우리는 GitHub에서 그 원격저장소를 생성할수 있고 이 원격저장소를 repository라고 부른다.

GitHub사이트에 들어가 우측 상단에 + 버튼을 눌러 new repository로 새로운 원격저장소를 생성한다. 생성이 되었으면 아래와 같이 레포지토리 주소가 보인다.

해당 레포지토리 주소를 복사하여 터미널에 아래와 같이 입력한다.

  • git remote add origin 레포지토리 주소
    이 명령어는 우리의 로컬저장소에 원격저장소(레포지토리)주소를 알려주는 것이다.
  • git push origin master
    이제 해당 명령어를 입력하면 우리가 만든 커밋이 GitHub 원격저장소(레포지토리)주소에 업데이트된다.

Git clone이란?

원격저장소(레포지토리)의 코드와 버전전체를 내 로컬 컴퓨터로 내려받는것을 clone 이라고 한다.

우리는 지금까지 iTshirt-cat 폴더에서 모든 작업을 했다.
이제 우리가 작업한 폴더의 소스와 버전을 다른 폴더에 클론할 것이다.

나는 클론을 위한 새로운 폴더인 iTshirt-oct 폴더를 새로 생성했다.

이제 GitHub에서 우리가 클론할 레포지토리로 들어간다.
나는 우리가 방금 만든 iTshirt 레포지토리의 주소를 클론할것이다.


해당 레포지토리의 주소를 복사한다.

그리고 우리가 클론할 폴더에 들어가서 아래와 같이 명령어를 입력한다.

  • git clone 클론할 레포지토리 주소
    이렇게 하면 클론이 되지만 우리가 이미 만든 폴더내에 다시 새폴더가 생성되어 그안에 소스코드와 버전이 들어있게된다.

  • git clone 클론할 레포지토리 주소 .
    그래서 이렇게 주소 뒤에 한칸뛰고 점을 붙혀주면 새로폴더가 안생기고 파일만 클론이 된다.


명령어를 입력하니 우리가 만든 iTshirt-oct폴더에 GitHub에서의 iTshirt 레포지토리 파일이 클론된것을 확인할 수 있다.

이제 이 파일을 아래와같이 수정하고 커밋후 레포지토리에 푸쉬해보겠다.

우리가 iTshirt레포지토리의 주소를 클론했으니 아까 iTshirt 레포지토리가 아래와같이 우리가 변경한 내용이 반영된 것을 확인할 수 있다.

이제 다시 모든 상황을 되짚어 보겠다.

맨처음 만든 내 컴퓨터의 iTshirt-cat 폴더내에는 처음 README 내용이 적혀있다.

이 파일을 GitHub의 iTshirt레포지토리(원격저장소)에 올렸고
이 레포지토리주소를 내 컴퓨터의 iTshirt-oct 폴더에 클론하여 내용을 아래와같이 수정했었다.

수정한 파일을 다시 커밋하고 원격저장소에 푸쉬하니 iTshirt레포지토리(원격저장소)에 업데이트 된것을 확인할 수 있다.

이게 현재 iTshirt-cat폴더, iTshirt-oct폴더, iTshirt레포지토리(원격저장소) 의 상황이다.

  • git pull origin master
    pull은 원격저장소에 새로운 커밋이있다면 그걸 내 로컬저장소에 받아오라는 명령어이다.

위 파일이 있는 iTshirt-cat 폴더에 들어가 git pull origin master를 해보겠다.

README.txt 파일을 열어보니 레포지토리의 내용이 당겨져 반영된것을 확인할 수 있다.










참고서적 : 팀개발을 위한 Git GitHub 시작하기 / 정호영, 진유림 지음

profile
Software Developer

1개의 댓글

comment-user-thumbnail
2021년 3월 17일

유용한 정보 감사합니다!

답글 달기