[강의] Git_Git

김하은·2023년 10월 24일
0

코드잇 강의 정리

목록 보기
25/60

Git 이란?

  • 코드 버전 관리 프로그램 / 버전 관리와 동시 협업을 가능하게 해주는 툴
  • 버전관리: 파일의 변화를 시간에 따라서 기록했다가 나중에 특정 시점의 버전을 다시 꺼내올 수 있는 시스템
  • 장점:
    지난 과정 확인 가능
    이전 버전으로 돌아갈 수 있음
  • 리누스 토발즈(Linus Torvalds)라는 사람이 빡쳐서 만듦
  • GitHub: Git으로 관리하는 프로젝트를 올려둘 수 있는 사이트 / 원격 저장소를 대신 제공해 주는 서비스
  • Git Bash: Git에서 준비한 Windows에서도 유닉스 커맨드를 사용할 수 있도록 해주는 프로그램

Git 써보기

repository와 commit

  • 저장소 (repository): 프로젝트 디렉토리의 초창기 모습부터 최근 모습까지 버전별로 담겨있음
  • .git 디렉토리(숨겨져 있음): 레포지토리 / 프로젝트의 변경 사항들이 저장 돼 있음
  • 커밋 (commit): 프로젝트 디렉토리의 특정 모습을 하나의 버전으로 남기는 행위와 결과물
    커밋이 저장되는 곳 : 레포지토리

repository 만들기

  • git init: 현재 디렉토리를 Git이 관리하는 프로젝트 디렉토리(=working directory)로 설정하고 그 안에 레포지토리(.git 디렉토리) 생성

첫 commit 해보기

  • commit에 관한 주의사항
  1. git에게 commit한 사람 알려주기
    git config user.name "haeun"
    git config user.email "han.kim0904@gmail.com"
    커밋에 이름과 이메일 주소도 함께 저장됨
  2. 커밋 메시지 남기기
    m옵션: 커밋에 대한 정보 (커밋메세지)
  3. 커밋할 파일을 git add로 지정해주기
    git add: 수정사항이 있는 특정 파일을 staging area에 올리기
    해당 디렉토리 내에서 수정사항이 있는 모든 파일들을 staging area에 올리기
    untracked 상태: Git으로 뭔가를 해준 적이 없어서 파일이 버전 관리 대상이 아닐 때
    add: commit 사전 작업으로 commit 할 파일 미리 지정해주는 것
    어떤 파일의 수정된 모습을 commit에 반영할 거라는 뜻
    git add calculator.py
    git add License
  4. commit하기
    git commit -m "Create calculator.py and License"
    root-commit: 이 커밋이 프로젝트의 첫 번째 커밋이라는 뜻

Git의 3가지 작업 영역

  1. working directory (working tree): 작업을 하는 프로젝트 디렉토리
    ex) MathTool 디렉토리
  2. staging area (index): git add를 한 파일들이 존재하는 영역
    커밋 시 staging area에 있는 파일들만 커밋에 반영 됨
    따라서 staging area에 올렸는지 여부에 따라 커밋에 반영되는지가 달라짐
    원하는 것들만 선별적으로 커밋에 반영할 수 있게 해줌
  3. repository: working directory의 변경 이력들이 저장되어 있는 영역
    즉, 커밋들이 저장되는 영역

git add 더 자세히 알아보기

  • git status: 깃이 인식하고 있는 프로젝트 디렉토리의 현재 상태를 보여줌
  • git add .: 현재 디렉토리 내에서 변경 사항이 있는 모든 파일을 한번에 staging area에 추가하는 방법

Git이 보는 파일의 4가지 상태

  • Git에서 파일들은 크게 4가지 상태를 가짐
    • Untracked 상태: 파일을 새로 생성하고 그 파일을 한 번도 git add 해주지 않은 상태
    • Tracked 상태: 파일이 Git에 의해 그 변동사항이 추적되고 있는 상태
      • Staged 상태
        새로 생성한 파일에 내용을 쓰고 git add를 해줌
        커밋에 포함됐었던 파일 중 내용을 수정하고 git add를 해줌
      • Unmodified 상태
        현재 파일의 내용이 최신 커밋의 모습과 비교했을 때 전혀 바뀐 게 없는 상태
        커밋을 하고 난 직후에는 working directory 안의 모든 파일들이 이 상태
      • Modified 상태
        최신 커밋의 모습과 비교했을 때 조금이라도 바뀐 내용이 있는 상태

git add 취소하기

git reset: staging area에서 파일 제거
git reset calculator.py

특정 git 커맨드의 사용법을 알고 싶다면?

  • git help add
  • man git-add
profile
아이디어와 구현을 좋아합니다!

0개의 댓글