한화 SW 캠프 1일차 개념정리

배창민·2025년 8월 13일

Git이란?

파일의 변경 이력을 관리하고 협업을 효율적으로 지원하는 도구

Git의 기능

💡 **버전관리** : 파일의 변경 이력을 기록하고, 필요한 경우 이전 버전으로 되돌릴 수 있다.

브랜치
: 개발의 다양한 단계나 기능을 분리하여 관리할 수 있다.
이를 통해 여러 기능을 동시에 개발하고 통합하는 것이 용이하다.

협업
: 여러 개발자가 동일한 프로젝트에서 병렬로 작업할 수 있게 지원한다.

용어 정리

💡 **Git 및 GIthub와 관련된 전반적인 용어**
  • Project Source Code (Working Directory 안에 존재)
    : 소스코드가 있는 프로그램 작성 파일로 일반적으로 workspace에 해당하는 디렉토리(폴더) 안에 작성된다.
    (HTML Project, Java Project, Dynamic Web Project, Springboot Project, React Project 등)
    - Staging Area (=Index Area)
    : 커밋 할 것들을 담아놓는 임시 공간, 커밋 하나에 포함할 변경 사항을 선택할 수 있기 위함(’버그 수정’과 ‘신기능 추가’를 구분해서 커밋할 수 있다.)

  • Local Repo (=지역 저장소, .git directory)
    : 프로그래머가 프로젝트 소스코드를 개발중인 컴퓨터에 마련하는 지역 저장소

  • Remote Repo (=github)
    : 작업중인 컴퓨터가 아닌 원격지에 마련하는 원격 저장소 혹은 공유 저장소로 github나 gitlab이 이에 해당됨

  • Git Bash
    : CLI 방식으로 Git을 사용할 수 있는 환경

      CLI(Command Line Interface) - 명령어를 입력하는 방식
    
      GUI(Graphic User Interface) - 마우스로 클릭하는 방식
    
      GUI 방식으로 제공되는 툴(소스트리 등)도 다양
  • add
    : 프로젝트 파일로부터 변경된 것을 Staging Area에 올리는 작업

  • commit
    : Local Repo로 Staging Area에 있던 것을 저장하는 작업을 ‘커밋한다’고 하며 이렇게 저장된 어느 시점의 프로젝트의 상태를 리비전(revision) 혹은 커밋이라고 한다.

  • push
    : Local Repo에만 있던 것을 Remote Repo로 올리는 작업

  • fetch
    : Remote Repo로부터 필요한 파일을 Local Repo로 받음(변경 내역)

  • merge
    : Local Repo에 있는 변경 사항을 Project에 직접 합치면서 반영하는 작업
    (Remote Repo에서 받은 것과 내 Project 간에 conflict(충돌)이 발생할 수 있음)

  • pull
    : fetch와 merge를 한번에 처리할 때 사용
    (merge를 포함하고 있으므로 merge와 마찬가지로 conflict가 발생할 수 있음)

profile
개발자 희망자

0개의 댓글