[Zero-Base]데이터 취업 스쿨 스터디 노트(Git)

강현정·2024년 7월 7일

zero_base

목록 보기
40/54

🖥️Installing Git

Git Link: https://git-scm.com/

  • 64bit로 다운로드

🖥️Ready to start Git

  • 아나콘다 프롬프트git bash의 명령어가 조금씩 다르다.
  • 따라서, 앞으로는 git bash를 주로 사용한다.
  • git bash는 관리자권한으로 실행
  • 유저 이름 설정
    $ git config --global uesr.name (유저이름)
  • 유저 이메일 설정
    $ git config --global user.name (이메일)

  • 깃 설정 변경 (Window 운영체제만 해당)
    git config --global core.autocrlf true
    (해당 설정은 윈도우에서 작업할때 체크아웃시 CRLF(Line Feed,Carriage Return)으로 변경하고, 커밋할때 LF(Line Feed)로 변경한다. 이는 윈도우와 유닉스 기반 시스템 간의 줄바꿈 문제를 자동으로 처리하여, 코드가 여러 운영체제에서 일관되게 작동하도록 도와준다.)

  • 깃 설정 확인
    git config --list
    (깃에 설정한 옵션들을 확인할 수 있다. q로 빠져나올 수 있음)

🔖Git 기본 용어

Repository

  • 소스코드가 저장되어있는 여러개의 Branch 가 모여있는 디스크상의 물리적 공간.
  • Local Repository와 Remote Repository가 있음.

Checkout

  • 특정 시점이나 Branch의 소스코드로 이동하는 것을 의미
  • Checkout대상 => Branch, Commit, Tag
  • Checkout을 통해 과거 여러 시점의 코드로 이동이 가능

Stage

  • 작업할 내용이 올라가는 임시저장영역
  • 이영역을 이용하여 작업한 내용 중 commit에 반영할 파일만 선별하여 commit을 수행할 수 있음

Commit

  • 작업할 내용을 local repository에 저장하는 과정
  • 각각의 커밋은 의미있는 변경단위이고, 변경에 대한 설명을 commit log로 남김
  • 권장 - commit을 아끼지 마세요(게임의 save point, 아끼면 똥된다)
  • 참고 - commit단위나 commit log format을 정해놓은 회사나 팀도 있음.

Tag

  • 임의의 commit위치에 쉽게 찾아갈 수 있도록 붙여놓은 이정표
  • Tag가 붙은 commit은 commit id(version) 대신 tag name으로 쉽게 checkout이 가능하다.

Push

  • local repository의 내용 중, remote repository 에 반영되지 않은 commit을 remote repository 로 보내는 과정
  • 권장 - Push하는 순간 다른 개발자들도 영향을 받음. 검증되지 않은 코드는 push하지 말기.

Pull

  • remote repository에 있는 내용 중, local repository에 반영되지 않은 내용을 가져와서 local repository에 저장하는 과정.
  • 다른 팀원이 변경하고 push한 내용을 local에 가져올 수 있음.
  • 참고 - Push과정에서 conflict가 일어나서 push가 거절된 경우 pull을 통해 remote repository의 변경을 local에 반영하여 충돌을 해결한 뒤 다시 push를 시도해야함.

Branch

  • 특정 시점 (commit 단위)에서 분기하여 새로운 commit을 쌓을 수 있는 가지를 만드는 것.
  • 개발의 주축이 되는 branch를 master branch(혹은 main branch)라고 함.
  • 모든 branch는 최종적으로 다시 master branch에 merge(병합)되는 형식으로 진행됨.

Merge

  • Branch와 반대개념으로 하나의 branch를 다른 branch와 합치는 과정.
  • Merge 되는 두 Branch는 주종관계가 성립. 예- dev branch를 main branch에 merge
  • Merge되는 과정에서 conflict가 발생하는 경우 diff 를 수정하여 conflict를 해결한 뒤 merge를 진행할 수 있음.

0개의 댓글