본문 바로가기

카테고리 없음

[Flutter_개발] Git과 GitHub

 

1. Git이란?

파일 변경 내역을 기록하고 추적하는 프로그램. 여러 사람이 동시에 작업할 수 있도록 돕는 분산 버전 관리 시스템(DVCS).

  • 중요 개념:
    • 스냅샷(Snapshot): Git은 파일 전체를 복사본으로 저장하지 않고, 변경 사항만을 기록해둠. 이 때문에 효율적이고 빠르다.
    • 분산 구조: 모든 개발자가 로컬에 전체 저장소를 복제해두기 때문에 인터넷이 없어도 작업 가능.
  • 활용 범위: 소스 코드 관리가 주 목적이지만, 문서, 데이터 파일 등 어떤 파일이든 버전 관리 가능.

2. Git이 필요한 이유

  1. 버전 관리
    • 파일의 과거 버전으로 쉽게 돌아갈 수 있음.
    • 변경 내역을 기록하여, 언제 어떤 변경이 있었는지 확인 가능.
    • 실수나 오류 발생 시 되돌리기 가능.
  2. 협업
    • 여러 명이 동시에 작업 가능.
    • 브랜치(branch)를 통해 독립적인 공간에서 안전하게 개발.
    • 충돌(conflict)이 발생해도 관리할 수 있는 체계가 있음.

3. Git 설치 및 설정

  • 설치 확인:설치가 안 되어 있다면 Mac은 brew install git, Windows는 Git 공식 사이트에서 설치.
    git --version
  • 사용자 정보 등록 (커밋 작성자 정보 기록용):
  • 설정 확인:→ 등록된 사용자 정보와 환경 설정을 확인 가능
  • git config --list

이 단계에서 사용자 정보가 올바르게 등록되지 않으면, 나중에 협업 시 commit 이력에서 ‘누가 작업했는지’ 추적이 어렵다.

4. Git 기본 명령어 6가지

Git을 쓸 때 가장 기본이 되는 명령어들:

  1. git init
    • 현재 폴더를 Git 저장소로 초기화.
    • .git 폴더가 생성되며, Git이 변경 이력을 관리할 준비가 된다.
  2. git status
    • 현재 저장소의 상태를 확인.
    • 변경된 파일, 추적되지 않는 파일, 커밋 대기 파일 등을 알려줌.
    • 자주 실행하면서 현재 상태를 체크하는 습관이 중요.
  3. git add
    • 변경된 파일을 스테이징 영역에 올림.
    • 스테이징(Stage): 실제로 커밋하기 전에 어떤 파일을 포함할지 선택하는 공간.
      git add 파일명 # 특정 파일 추가
      git add . # 모든 변경 파일 추가
  4. git commit
    • 스테이징된 변경 사항을 저장소에 기록.
    • 메시지를 꼭 작성해야 하며, 변경 이유를 간단히 기록.
    • 예시: git commit -m "회원가입 기능 추가"
  5. git push
    • 로컬 저장소의 커밋을 원격 저장소(GitHub 등)에 업로드.
    • 팀 협업에서 반드시 필요한 과정.
    • 최초 1회는 원격 저장소와 브랜치를 연결해야 함:
    • git push -u origin main
  6. git pull
    • 원격 저장소의 최신 변경 사항을 로컬 저장소로 가져옴.
    • 작업 시작 전 반드시 실행해서 코드 충돌을 최소화하는 습관 필요.

5. GitHub 활용 (기본)

  • GitHub 정의: Git 저장소를 온라인에서 관리할 수 있는 서비스. 세계 최대의 오픈소스 공유 플랫폼.
  • 주요 기능:
    • 원격 저장소 관리 (백업 및 협업)
    • Collaborator(협업자) 등록
    • Pull Request로 코드 리뷰 및 병합
  • 저장소 활용하기!:
    1. GitHub 계정 가입
    2. 새 저장소(repository) 생성 (공개/비공개 선택 가능)
    3. 로컬 저장소와 연결
    4. git remote add origin <원격저장소URL>
    5. 코드 수정 후 로컬에서 add → commit
    6. 원격 저장소에 push로 업로드
    7. 협업 시 Pull Request를 통해 main 브랜치에 병합

깃 과 깃허브는 개발자가 되려는 목표를 가진 나에게는 아주 유용하고 오랫동안 쓰일 것이다. 아직은 깃허브 하나 활용하는데도 하나하나 찾아보며 해야하지만 앞으로 캠프 진행하는동안 익숙해지기 위해 자주 이용해 봐야겠다. 지금은 단순한 저장소 활용만 이용했지만 브랜치같은 다른 기능들도 이용해 보자.