TIL 22 | Git & Github

ElenaPark·2021년 3월 28일
0

기타 자료

목록 보기
2/7
post-thumbnail

Git이란

  • Git이란 프로젝트의 버전 관리를 도와주는 시스템이다.
  • 여기서 프로젝트란? 제일 부모가 되는 폴더 하나를 의미한다.
  • VCS(Version Control System)이라고도 한다.

버전 관리를 하는 이유

버전이란, 하나의 유의미한 변화를 결과물로 만들어낸 것을 의미한다.
게임에서 버전 업데이트를 하는 것과 같이 프로그래밍에서도 버전이라는 것이 있고 그것을 관리해야 한다.

  1. 보통 많은 개발자들이 협업해서 하나의 새로운 버전을 만든다. 즉, 하나의 버전을 관리하는 과정에서 협업이라는 것이 필연적이다.
  2. 버전을 관리하는 과정에서 이전의 버전으로 되돌리는 작업이 필요할 수 있다.
  3. 효율적으로 백업하는 과정이 필요하다.
  4. 수정 사항의 이력을 남길 수 있다.

    이러한 작업을 해주는 것이 Git 버전 관리 시스템이다.

코드가 하나의 버전이 되는 과정에서의 세 개의 공간

작업 공간(Working Directory)

  • 사용자가 코드 작업을 하는 공간
  • 파일들이 생성, 수정, 삭제되는 공간(즉, 변경사항이 생기는 공간)

작업공간에서 만든 모든 파일을 무조건 하나의 버전으로 만들어야할까?
그럴 필요는 없다. 작업공간에서 버전이 될 파일을 선별한 후 그것을 다음공간으로 넘길 수 있다.

스테이징 공간(Staging Area)

  • 버전이 될 후보들이 올라오는(staging) 공간
  • 작업공간에서 해당 후보들을 선별

저장소(Repository)

  • 새로 만든 버전과 지금까지의 버전 내역이 저장되는 저장소

단계별 git 명령어

모든 git 명령어는 git <명령어> 형태로 작성한다.

git 시작

git init

  • git을 시작할 공간 안에서 git을 시작,초기화한다는 의미에서 아래와 같은 명령어로 git을 시작한다.
  • 이렇게 git init을 하게되면 해당 폴더 안에 .git이라는 숨김파일이 생성되는데 이 파일로 인해서 해당 폴더의 삭제 또는 수정된 것에 대한 모든 변경사항이 감지된다.

버전관리가 되는 폴더의 현 상황을 확인

git status

  • untracked files: test.txt 라는 문구가 있다면 test.txt 파일은 아직 git add로 인해 작업 공간에서 스테이징 공간으로 넘어가지 않았다는 뜻이다. 즉, 새로 생긴 파일.

1단계: 작업 공간 -> 스테이징 공간

git add <파일명>
git add . 또는 git add *

  • git status로 내역을 확인했을 때 changes to be committed: new file: test.txt 라는 문구가 있다면 이는 git add로 인해 스테이징 공간에는 올라왔지만 아직 git commit으로 저장소에 올라가기 직전의 파일이란 뜻이다.

  • 작업 공간에서 스테이징 공간으로 넘겨줄 파일이 직접 처리하기에 많은 경우에는 git add . 또는 git add *를 사용하여 모든 파일을 한번에 넘길 수 있다.

  • 만약 스테이징 공간에서 이미 스테이징 된 파일을 다시 작업 공간으로 unstage하고 싶은 경우 git rm --cached <파일명> 명령어를 사용하게되면 파일이 다시 작업 공간으로 내려가게 된다.

2단계: 스테이징 공간 -> 로컬 저장소

git commit -m "커밋 메세지"

  • 선별된 파일들이 git add 명령어를 통해 스테이징 공간에 올라왔으면 최종적으로 버전으로 저장되어야 하는데, 이때 git commit -m "커밋 메세지" 명령어를 통해 저장해주어야 한다.
  • 버전이 많아지고 프로젝트 규모가 커질수록 다양한 커밋 내역과 버전들이 쌓이는데, 추후에 해당 커밋을 보았을 때 어떤 변경사항이 생겨서 이 커밋을 만들었는지, 어떤 유의미한 변화를 해당 버전에 담았는지를 확인할 수 있다.
  • 이렇게 커밋을 하게되면, 내 컴퓨터 안의 저장소에 커밋이 저장된다.

git commit -am "커밋 메세지"

  • 이 명령어는 add와 commit을 동시에 하게 해주는 명령어이다. 다만 최초로 한번은 commit이 되어야 그 다음부터 이 명령어를 사용하여 동시에 add와 commit을 할 수 있다.

지금까지 만들어진 commit 내역을 확인하는 방법

  • git log 명령어 사용

로컬 저장소에 저장된 버전을 원격 저장소로 올리는 법

git push (origin mastser)

  • 위에서와 같이 로컬 저장소에까지 commit을 마치게된 후 원격 저장소인 Github으로 파일을 업로드하기 위해 쓸 수 있는 명령어이다.
  • 괄호 안의 origin은 원격 저장소의 저장소명, 뒤의 master는 내 로컬저장소의 master 브랜치를 의미한다.

브랜치 생성 및 접속 방법

git branch <브랜치명>

  • master 브랜치 외 추가적으로 브랜치를 생성하고 싶을 때 위의 명령어를 사용한다.
    git checkout <브랜치명>
  • 특정 브랜치로 이동한다.
    git checkout -b <브랜치명>
  • 새 브랜치를 생성하면서 동시에 해당 브랜치로 이동한다.

Github

  • Git을 사용한 프로젝트들의 원격(remote) 저장소를 의미한다. 즉, git을 이용해 버전관리를 한 프로젝트들을 관리하게 해주는 온라인 호스팅 서비스이다.
  • 이외에도 개발자들을 위한 소셜 미디어의 역할을 하기도 한다
profile
Front-end 개발자입니다.

0개의 댓글