[프로그래밍] Git

[Git] Git?

JHVan 2024. 5. 8. 14:11

소프트웨어 개발에서 소스 코드의 변경 사항을 추적하는 데 널리 사용되는 분산 버전 관리 시스템.

리눅스 개발, 협업과 코드 관리를 위한 강력한 도구로서 개발자들 사이에서 널리 사용됨.

개념

  • 리포지토리(Repository)
    • Git에서 프로젝트 코드와 해당 변경 이력이 저장되는 곳.
    • 로컬 리포지토리와 원격 리포지토리가 있음.
  • 커밋(Commit)
    •  코드나 파일의 변경 사항을 리포지토리에 저장하는 행위
    • 각 커밋은 고유한 ID를 가지며, 변경 내역, 작성자, 날짜 등의 정보를 포함.
  • 브랜치(Branch)
    • 개발의 분기점을 만들어 다양한 기능을 독립적으로 개발할 수 있게 해줌.
    • 기본적으로 'master' 또는 'main' 브랜치가 주요 브랜치로 사용.
  • 병합(Merge)
    • 다른 브랜치에서 개발한 내용을 합치는 과정.
    • 충돌(conflict)이 발생할 수 있으며, 수동으로 해결해야 할 수 있음.

소스 코드 관리 단계 

작업 디렉토리(Working Directory)

  •  개발자가 실제로 파일을 수정하고 작업하는 공간
  • 이곳에서 코드를 수정하거나 새 파일을 생성하는 등의 작업이 이루어짐
  • 이 단계에서의 변경 사항은 아직 Git에 의해 추적되지 않음

스테이징 에어리어(Staging Area)

  • 작업 디렉토리에서 변경된 파일 중 Git에 기록하기를 원하는 파일을 선택하여 스테이징 영역으로 이동시키는 단계
  • git add [파일명] 명령어 사용
  • 스테이징 영역은 커밋으로 확정짓기 전에 변경 사항을 임시로 저장하는 곳
  • 올라간 변경 사항만이 다음 단계인 커밋에 포함됨.

커밋(Commit)

  • 스테이징 영역에 추가된 변경 사항들을 리포지토리에 기록하는 단계
  •  git commit 명령어를 사용하여 이 과정을 수행하며, 일반적으로 -m 옵션을 사용해 커밋 메시지를 함께 작성
  • 커밋을 하면 Git은 해당 시점의 스냅샷을 저장하며, 이 스냅샷은 나중에 특정 버전으로 돌아가거나 변경 내역을 검토할 때 사용됨.

리포지토리(Repository)

  • 커밋된 변경 사항들은 로컬 리포지토리에 저장
  • 로컬 리포지토리는 개발자의 컴퓨터에 위치하며, 여기에는 프로젝트의 모든 커밋과 변경 이력이 포함.\

파일의 상태 변화

Untracked (추적되지 않음)

  • 새로 생성된 파일은 Git에 의해 관리되지 않는 상태임.
  • Git 디렉토리에 존재하지만, 아직 버전 관리 대상으로 추가되지 않음.

Add file (파일 추가):

  • git add [파일명] 명령어를 사용하여 파일을 Staging Area(스테이징 영역)에 추가
  • 파일이 추적되기 시작하며, 다음 커밋에 포함.

Unmodified (수정되지 않음)

  •  파일이 커밋되어 Staging Area와 Repository에 저장된 후, 아직 수정되지 않은 상태
  • 이 상태의 파일은 Git에 의해 추적되고 있지만, 마지막 커밋 이후 변경사항이 없음

Modified (수정됨)

  • 기존에 추적되고 있는 파일에 변경사항이 발생했을 때
  • 변경사항이 아직 Staging Area에 추가되지 않았기 때문에 다음 커밋에는 포함되지 않음

Staged (스테이징) 

  • 수정된 파일을 다시 git add [파일명] 명령어로 Staging Area에 추가하면 파일은 스테이징 상태가 됨
  • 이 상태의 파일은 다음 커밋에 포함될 준비가 완료된 상태

Remove the file (파일 삭제)

  • 파일을 삭제할 경우, 삭제된 파일도 git add [삭제된 파일명] 명령어를 사용하여 스테이징 영역에 추가해야 함
  • 스테이징 영역에 추가된 삭제된 파일은 다음 커밋에 파일이 삭제된 상태로 기록

Edit the file (파일 편집)

  •  파일을 수정하는 행위는 파일을 Modified 상태로 만듬
  • 수정된 내용을 커밋에 포함시키기 위해서는 다시 스테이징 과정을 거쳐야 함

Stage the file (파일 스테이징)

  • 수정된 파일을 git add 명령어로 스테이징 영역에 추가하는 과정
  • 이 과정을 통해 파일은 다음 커밋에 포함될 준비를 마침

Commit (커밋) 

  • 과거에 커밋 프로젝트의 특정 시점으로 돌아갈 수 있음

 

'[프로그래밍] Git' 카테고리의 다른 글

[GIT] 원격 저장소 관리  (0) 2024.05.08
[GIT] Branch  (0) 2024.05.08
[GIT] git 사용법  (0) 2024.05.08