/ GIT

Git 기본

Git

  • 소스 코드 관리를 위한 도구인 분산형 형상관리시스템
    • 리누스 토발즈가 개발
  • 소스코드 이력을 남겨서 소프트웨어의 변경사항을 추적하고 관리

  • 빠른 속도, 분산형 저장소 지원 가능

  • .git은 전체 기록과 각각의 세부 변경에 대한 추적 정보(metadata와 객체 DB)를 담고 있는 Git 관리 정보 폴더

    • git init 명령으로 설정
        git init
      
    • Local Repository
  • remote git은 git 원격 저장소이며 로컬 작업의 한계(저장소 용량, 공동작업 등)를 극복할 수 있음

  • 로컬(오프라인 상태) 저장소로 작업 가능

  • commit이라는 명령을 통해 모든 소스코드의 상태를 기록함
    • commit하기 전 사용해야 하는 stage 단계가 따로 있는 Staging 지원
    • 변경된 사항들은 일단 장바구니에 넣은(Staging) 하고나서 최종 결재(commit)
  • branch 가능

  • merge는 서버(온라인) 데이터를 fetch해와 로컬에서 merge하여 다시 올리면 됨

  • github, bitbucket, gitlab 과 같은 git 저장소 서비스 활용가능

  • GUI를 활용할 수 있으나 한계가 있어 CLI 사용하는 것이 모든 기능을 활용할 수 있고 기본임
    • sourcetree 툴로 전체적인 버전관리 상황 확인 가능
  • 파일 상태 변화

    비유 : 이것저것 만들다가, 만든 것들을 저장바구니에 담아두고, 담은 것들을 최종 영구저장함)

    • Modified : 파일을 수정한 상태 (git으로 어떠한 전달도 없음)
    • Staged : 파일을 수정한 후 그 파일을 곧 commit할 준비가 됐다고 알린 상태
    • Committed : 파일을 수정한 후 그 파일을 commit 해서 Local Repository에 안전하게 저장한 상태

설치 (windows x64)

  • https://git-scm.com/download/win 에서 설치버전이나 포터블버전을 다운로드 받음
    • git은 꼭 개발자에게 필요한 도구이므로 개인적으로 설치버전 선택.
    • 현재 대부분의 윈도우는 64bit이므로 64bit 버전 다운로드.
  • 설치 진행
    • Adjusting the name of the initial branch in new repositories 설정 화면에서 Override the default branch name for new repositories를 선택하고 main을 기본 브랜치 이름으로 함
      • github에서 기본 Repository 이름이 기존 master에서 main으로 변경되어 편의상 설정
    • (옵션사항) Choosing the default editor used by Git 설정 화면에서 Use Visual Studio Code as Git’s default editor 로 선택 가능
    • 그 외 다양한 옵션들 있는데 그냥 기본값으로 진행
  • 설치 후 탐색기에서 오른쪽 마우스 클릭 시 git bash here 메뉴 확인

환경설정

  • Windows의 환경설정 파일들 (우선순위순)
    • .git/config
      • (git init명령을 실행했다면) 해당 Local Repository에만 적용되는 설정으로 Git Directory안에 위치
    • $USER_HOME/.gitconfig
      • 윈도우사용자별로 적용되는 설정
        git config --global
        
    • $GIT_HMOE/mingw64/etc/gitconfig
      • 윈도우시스템 모든 사용자/저장소에 적용되는 설정
        git config --system
        
  • git bash 실행하여 git config로 기본 환경설정
    git config --global user.name "HweeJoon-Chung"
    git config --global user.email "hweejoonchung@gmail.com"
    
-->