TIL #19 - Git & Github

rosarang·2021년 1월 19일
0

Session

목록 보기
3/7
post-thumbnail

Git이란?

Version Control System (VCS)

일반적인 문서 작업 시 파일에서 내용을 추가하거나 수정하여 새로운 파일을 save as로 저장하게 됐을 때 중복되는 파일이 생성된다.

이러한 용량 차지, 수정 내용 확인 등의 문제들을 해결하기 위해 개발자들은 Git이란 것으로 버전 관리를 한다.

파일은 똑같이 하나가 있지만 파일에 무언가 추가되거나 수정될 때 중간 중간 Git으로 commit을 남기면 해당 부분이 메모와 해당 부분의 commit 시기가 함께 로그처럼 남는다.

코드 버전 관리를 하는 이유는 무엇일까?

  1. 파일 하나로 버전 관리가 가능하다.

    • 수정할 때마다 파일을 새로 만들면 용량을 차지하고 관리하기 힘들다.
  2. 언제든지 이전 버전의 코드로 돌아갈 수 있다.

  3. 이력을 남길 수 있다.

    • 문제가 생겼을 때 누가 잘못했는지 찾아야 한다. - git blame
      당사자가 되돌리기도 편하고, 해당 코드에 대해 잘 알고 있기 때문에 효율적으로 일 해결할 수 있다.

    • 어느 시점에 일어난 업데이트인지도 확인할 수 있다.

  4. 하나의 프로젝트를 두고 여러 명의 개발자들이 협업할 수 있다.

이전부터 사용되던 버전 관리 시스템들

  • subvision
  • mercurial
  • cvs

현재 글로벌하게 제일 많이 쓰이는 것은 Git이다.

Github란?

git을 사용한 프로젝트들의 저장소이다. 개발자들의 social network로도 쓰인다.

Git과 Github의 차이점

Git은 프로젝트 버전 관리를 도와주는 시스템이고, github은 git을 이용해 버전 관리한 프로젝트들을 관리하게 해주는 호스팅 서비스이다.

Git은 인터넷이 필요 없다. 컴퓨터에 git만 깔려있다면! github은 호스팅 서비스이기 때문에 인터넷이 연결되어 있어야 한다.

Git 실전

git이 깔려있는지 확인하는 방법

git --version -> git version 확인. git command not found 등의 메시지가 나올 경우 git 설치가 안 되어 있는 것이다.

git bash - git이 없을 경우 대신하여 사용할 수 있다.

기본적인 명령어

git init - git 시작
git으로 버전관리 하고 싶은 폴더가 있으면 해당 폴더에서 명령어를 입력한다. 이때 숨김폴더로 .git이 생기며, git 연결 최초에 한번만 하면 된다.
깃헙에 올라간 프로젝트를 clone할 경우 다시 git init할 필요는 없다. 이미 .git 파일까지 포함된 상태이기 때문이다.

git remote add origin http://github.com/... - 해당 주소 repository의 branch로 파일과 commit 내역을 업로드.
github에 만든 repository는 현재 아무것도 없는 상태이기 때문에 fetch(=pull)와 push의 주소를 remote시킬 때 하나로 묶고 이름을 origin으로 붙여준다.

git clone http://github.com/... - 입력한 github 주소의 파일 다운로드

git add . - 모든 파일 추가
변경사항들이 있는 파일을 commit하기 전 추가하고 이력으로 만들어줄 준비를 한다.

git commit git commit -m "commit message" - 파일 수정 이력 기록
git add로 변경사항들을 모아 추가하면 commit이 가능해진다. commit은 메시지와 함께 작성되어 github으로 보내지게 되며 로그처럼 남게 된다.

git branch -M main - git의 기본 branch 명을 master에서 main으로 변경.
Go 언어가 인종차별적인 의미를 연상시키는 whitelist/blacklist, master/slave 등의 용어를 없애면서 이러한 명칭들을 변경하자는 여론이 형성되었다.
Git의 경우 사용자가 branch 명칭을 바꿀 수 있는 명령어를 추가하여 업계 전반적으로 바꾸는 추세이다.

git push origin ... - 해당 브랜치의 이력과 commit 내역을 remote 환경으로 업로드. remote 주소를 묶어줄 때 이름을 origin으로 붙여주었기 때문에 origin 후 해당 브랜치명을 입력해야 싱크가 맞는다.

git push -u origin main - -u 을 입력하면 최초에 한 번만 등록해도 나중에 git push 했을 때 origin main으로 보내준다.

git branch feature/branchName - 해당 branch 생성

git checkout feature/branchName - 해당 branch로 이동

git status - git 상태 확인
git init을 하면 그 순간부터 파일에 한 글자만 추가해도 git에서 알 수 있다.
git status를 치면 현재 파일의 변경사항들을 모두 알 수 있다.

git log - commit 이력 보기. 이력 확인 후 q로 나갈 수 있다.

git blame - 수정한 사람 확인

git remote remove origin - 기존 repository remote 삭제

profile
UX에 관심 많은 개발 초보 Front-end Developer

0개의 댓글