본문 바로가기

CS/Git&Github

git과 github 기본

오늘날 git를 이용한 협업이 매우 중요하죠. 그래서 이번 기회에 기본적인 걸 배웠고 그것을 기록해 둘까 합니다.

먼저, git은 많은 버전 관리 시스템 중 하나입니다.

git에 장점은,

  • 복잡한 Branch* 관리에 적합
  • 심플하지만 핵심적인 기능 강력
  • 로컬 저장소와 원격저장소의 분리
  • 빠른 속도
  • 다양한 서비스 업체
  • 다양한 보조 툴

이 있다고 합니다.

 본격적으로 git에 대해 기록하자면,

Working Directory

지금 컴퓨터에서 실제 작업하는 디렉토리, 만들거나 수정 등 어떠한 작업을 한 디렉토리

 

Staging Area

저장소로 파일이 들어가기 전 준비 공간

준비 공간에 들어온 파일(git add한 파일)은 깃이 추적을 시작하게 되고, Local Repo에 들어갈 준비(git commit)를 마치게 된다.

때문에, 파일a, 파일b 두 파일 중 a만 Staging Area에 등록되면, 파일a에 대해서는 추적을 시작, 파일b는 추적을 하지 않게 됩니다.

 

 Local Repository(저장소)

최종적으로 Staging Area에 있던 파일을 Local Repository(저장소) 즉, 우리 컴퓨터 저장소에 저장(git commit) 하게 됩니다. 그 과정에서 log message 또한 남길 수 있습니다.

 Local Repository(저장소)는 Remote Repository(원격 저장소) 전 단계이고, 깃허브의 저장소가 될 것입니다.

 

마지막으로,

git은 많은 명령어 들이 있지만, 그중 배운 몇가지만 기록해 보겠습니다.

 

먼저, 폴더를 git이 추적할 수 있도록,

  • git init

 

추적한 폴더안 변경사항을 보고싶을 때는,

  • git status

 

본격적으로 파일을 추적하고 싶을 때는,

  • git add 폴더명 OR git add *(폴더안 모든 파일)

 

추적한 파일을 저장소에 저장 하고싶을 때는,

  • git commit -m "push 메시지"

 

갑자기 폴더가 날아가거나 삭제되어 저장소에 있는 폴더를 복사 하고 싶을 때는,

  • git clone 원격 저장소 주소

 

협업 등을 통해 파일의 변경 내용을 가져오고 싶을 때는,

  • git pull origin 브랜치

 

⭐️ 추가 내용 ⭐️

 Branch*란

독립적으로 어떤 작업을 진행하기 위한 개념입니다. 필요에 의해 만들어지는 각각의 브랜치는 다른 브랜치의 영향을 받지 않기 때문에, 여러 작업을 동시에 진행할 수 있습니다.

또한, 이렇게 만들어진 브랜치는 다른 브랜치와 병합(Merge)함으로써, 작업한 내용을 다시 새로운 하나의 브랜치로 모을 수 있습니다.

브랜치를 사용하여 동시에 여러 작업을 진행할 때의 작업 흐름을 한눈에 파악할 수 있습니다.

브랜치에 대한 git 명령어 또한, 몇 가지를 기록할까 합니다.

 

먼저, 현재 사용중인 브랜치를 보고싶을 때는,

  • git branch를 통해 확인
  • 브랜치 명 앞에 별표가 현재 선택된 브랜치입니다.

브랜치를 만들고 싶을 때는,

  • git branch 브랜치이름
  • 만든 브랜치 이름으로 깃허브에 push 해주고 싶다면, 
    • git push --set-upstream origin 브랜치이름

브랜치를 전환하고 싶을 때는

  • git checkout 브랜치이름

브랜치를 병합하고 싶을 때는,

  • 먼저, 담길 브랜치로 전환해 줍니다.
  • git merge 담길브랜치이름

필요가 없는 브랜치를 삭제하고 싶을 때는,

  • git branch -d 브랜치이름

 

 

.gitignore 파일이란

해당 파일을 통해 파일명을 적으면, Stage 영역에 올라가지 않도록 자동으로 관리해 줄 수 있는 파일

touch .gitignore gitignore파일 생성

open .gitignore 파일 오픈

 

 

참고: https://backlog.com/git-tutorial/kr/stepup/stepup1_1.html, https://opentutorials.org/module/3963/24425,