git & github 기초

noname·2020년 2월 13일
0

git

라이너스 토르발즈가 오픈소스로 만든 VCS(version control system)
이력을 저장하고 관리하는 저장소라고 생각하면 어렵지않다.

  • VCS 버전관리시스템이란?
    version -> 소스코드파일(코드파일)의 버전.
    소스코드의 변경사항, 변경내역들을 저장하고 관리하는 시스템.

  • 왜 버전관리 시스템을 사용해야 할까?

  1. 코드의 변경사항이나 변경 내역기록을 저장하고 관리하기 위해.
  2. 소스코드가 잘못 작성되었을 시에 이전 버전으로 되돌리기 위해.
  3. 여러 사람들과 협업을 할때 각각의 수정사항들을 체계적이고 효율적으로 관리하기 위해.

등등 여러 이유가 있다.

git을 사용하며 알아야 할 단어

repository : 저장소. 소스코드 파일이나 파일이 담겨있는 폴더를 저장하는 곳. 줄여서 repo라고 부르기도 한다.
remote repository : 원격 저장소(중앙서버). 트리구조의 root(뿌리)가 되는 저장소.
rocal repository : 내가 작업할 공간(개인 PC)에 소스코드 파일이 저장되는 개인 저장소.
clone : 최초로 remote repo에 저장되어있는 폴더나 파일들을 복제하여 로컬 저장소에 저장하는 것을 말한다.
pull : 최초로 clone하여 저장한 이후에 버전이 달라졌을 때 최신 변경이력을 다시 로컬 저장소에 저장, 적용하는 것을 말한다.
branch : 독립적으로 작업을 진행하고자할 때 만들게 되는 작업영역.
master branch : 기준이 되는 작업영역. 처음 clone하여 branch를 생성하지 않고 작업을 하게 되면 master branch에 작업을 하고 저장을 하게 된다.
여러 사람이 master branch에서 작업을 하고 저장을 하게 된다면 다발적으로 같은 코드 라인에 작업을 하게 될 수도 있기 때문에 충돌이 일어날 확률이 크다.
feature branch : master branch에서 새롭게 생성하는 branch.
개인이 작업할 branch를 새로 생성하여 작업을 하게되면 여러 다른 사람들의 branch에 영향을 받지 않는다. 따라서 충돌이 일어날 확률이 적다.
checkout :
stage : 임시저장. 수정한 소스코드 파일을 임시저장한 "상태"를 말한다.
commit : 저장. 현재 단계에서 최종적으로 "저장하는 것"을 말한다.
push : 업로드. 최종적으로 저장한 파일, branch를 git repo에 업로드하는 것을 말한다.
merge : 병합. git repo에 업로드 된 소스코드 파일, branch를 master branch에 병합하는 것을 말한다.

git 작업단계

  1. git repo에 저장된 소스코드 전체를 clone, 다운로드한다.
  2. 개인이 작업할 branch를 생성한다.
  3. 소스코드 파일을 수정한다. 작업한다.
  4. 수정한 파일들을 stage 한다.
  5. 소스코드 파일을 수정한다. 작업한다.
  6. 최종적으로 수정, 작업이 완료된 파일을 commit한다.
  7. git repo의 관리자가 commit된 작업물을 merge한다.
  8. 새로운 버전 완성!

git 명령어 기초

git init : 현재 작업하고 있는 프로젝트 파일을 git repo로 만들기 위해 사용하는 명령어.
git clone url : 기존에 있는 repo를 복제하여 나의 작업 영역에 저장하기 위해 사용하는 명령어. url부분에 git repo의 url을 복사하면 해당 repo가 복제되어 저장된다.
git branch feature/jelly : 새로운 브랜치를 생성하는 명령어. feature/jelly에는 원하는 브랜치의 이름을 작성해주면 된다. 기본적으로는 feature/이름 이런식으로 작성된다.
git checkout 브랜치이름 : 해당 브랜치로 들어가게 해주는 명령어.
git add : 수정한 소스코드 파일을 staged 상태로 만들어주는 명령어.
"git add ." 이렇게 명령하게 되면 현재 브랜치에 있는 모든 파일들을 staged 상태로 만들어준다.
"git add 파일이름" 이렇게 명령하게 되면 staged 상태로 만들고 싶은 파일만 staged 상태로 만들어준다.
git commit : staged 상태가 되어있는 파일들을 최종적으로 저장하게 하는 명령어.
"git commit -m "전달하고자 하는 메세지""이런 방식으로 명령어를 사용하게 된다.
git status : 현재 상태를 알려주는 명령어. 내가 작업한 소스코드 파일이 staged 상태인지 commit된 상태인지 아무것도 저장되어있지 않은 상태인지 알려주는 유용한 명령어.
git push : commit된 상태의 나의 소스코드, 브랜치를 git repo에 업로드 시켜주는 명령어.
"git push origin 브랜치이름" 이런 방식으로 명령어를 사용하게 된다.
git rm : 삭제하길 원하는 파일을 git repo에서 삭제해주는 명령어.

github

git을 바탕으로 만들어진 중앙서버 역할을 하는 서비스.
개발자가 직접 중앙서버를 만들려면 많은 비용과 많은 시간이 소비된다.
그렇기때문에 무료(오픈소스 프로젝트일 경우)로 여러사람이 함께 사용할 수 있는 github를 사용한다.
최근 IT업계에서는 github 계정이 포트폴리오의 역할을 하는 경우가 많다고한다.

profile
notion으로 블로그이사를 하려다가 그냥 남아있습니다.

0개의 댓글