[Day46] WSL, Linux - Git 사용 1(디렉토리, 스테이징, 레포지토리)

Validator·2023년 8월 18일
0

1. git이란 무엇인가?

Git(깃)은 분산 버전 관리 시스템(Distributed Version Control System, DVCS) 중 하나로, 소프트웨어 개발에서 소스 코드의 변화를 기록하고 여러 사람이 협업할 때 코드의 변동사항을 쉽게 관리할 수 있게 도와준다.

2. directory, staging, repository 개념

  • Directory (디렉토리)

    • 일반적으로 '디렉토리'라고 부를 때는 컴퓨터의 폴더를 가리키는 경우가 많다.
    • Git에서의 '디렉토리'는 현재 작업 중인 프로젝트의 로컬 폴더를 말한다. 이곳에는 소스 코드, 이미지, 문서 등 프로젝트와 관련된 모든 파일이 포함된다.
  • Staging (스테이징)

    • Git에서는 변경사항을 바로 저장(커밋)하기 전에 준비 영역인 '스테이징'에 먼저 추가한다. 이는 변경사항을 일시적으로 모아둔 상태를 말한다.
    • 변경사항을 스테이징 영역에 추가하려면 git add 명령어를 사용한다.
  • Repository (리포지토리)

    • Repository(리포지토리)는 프로젝트의 모든 정보와 히스토리를 담고 있는 데이터베이스 같은 저장소다.
    • Git 리포지토리에는 코드뿐만 아니라, 커밋, 브랜치, 태그 정보 등도 포함된다.
    • 리포지토리는 크게 두 가지로 구분된다:
      1. Local Repository (로컬 리포지토리)
        • 사용자의 PC에 저장된 리포지토리로, 사용자가 직접 커밋, 수정, 브랜치 관리 등의 작업을 할 수 있다.
      2. Remote Repository (리모트 리포지토리)
        • 네트워크 상의 다른 서버에 저장된 리포지토리다. 여러 사람이 함께 작업할 때 사용하며, GitHub, GitLab 등의 서비스가 대표적이다.

3. 연습용 코드

  • Directory 생성 및 이동

    mkdir my_project  # 'my_project'라는 이름의 디렉토리 생성
    cd my_project     # 'my_project' 디렉토리로 이동
  • Git 초기화 및 Repository 생성

    git init  # 현재 디렉토리를 Git 리포지토리로 초기화
  • 파일 생성 및 Staging

    echo "Hello, Git!" > readme.txt   # 'readme.txt'라는 파일에 "Hello, Git!" 문자열 저장
    git add readme.txt               # 'readme.txt'를 스테이징 영역에 추가
  • Commit

    git commit -m "Initial commit"   # 스테이징 영역의 변경사항을 리포지토리에 커밋
  • Remote Repository 연결

    git remote add origin [GitHub 또는 GitLab의 리포지토리 주소]  # 리모트 리포지토리와 연결
    git push -u origin master                                    # 변경사항을 리모트 리포지토리에 푸시

4. 기본 개념

  • Commit (커밋)

    • 리포지토리에 파일 및 디렉토리의 변경사항을 기록하는 행위다. 각각의 커밋은 고유한 ID와 메시지를 가진다. 이를 통해 이전 상태로 롤백하거나, 언제 어떤 변경사항이 있었는지 추적할 수 있다.
  • Branch (브랜치)

    • 프로젝트의 특정 버전을 가리키는 포인터다. 기본적으로 'master' 또는 'main'이라는 이름의 브랜치가 생성된다. 새로운 기능 개발 또는 버그 수정 시, 새 브랜치를 생성해 작업하고 완료 후 메인 브랜치에 병합(merge)하는 방식으로 진행한다.

이제 여기까지의 내용을 기반으로 Git의 기본 워크플로와 중요 개념들에 대해 알게 되었다. 다음 설명에서는 브랜치 관리, 병합, 충돌 해결 등의 고급 주제에 대해 다루겠다.

1. git이란 무엇인가?

Git(깃)은 분산 버전 관리 시스템(Distributed Version Control System, DVCS) 중 하나로, 소프트웨어 개발에서 소스 코드의 변화를 기록하고 여러 사람이 협업할 때 코드의 변동사항을 쉽게 관리할 수 있게 도와준다.

2. directory, staging, repository 개념 설명

  • Directory (디렉토리)

    • 일반적으로 '디렉토리'라고 부를 때는 컴퓨터의 폴더를 가리키는 경우가 많다.
    • Git에서의 '디렉토리'는 현재 작업 중인 프로젝트의 로컬 폴더를 말한다. 이곳에는 소스 코드, 이미지, 문서 등 프로젝트와 관련된 모든 파일이 포함된다.
  • Staging (스테이징)

    • Git에서는 변경사항을 바로 저장(커밋)하기 전에 준비 영역인 '스테이징'에 먼저 추가한다. 이는 변경사항을 일시적으로 모아둔 상태를 말한다.
    • 변경사항을 스테이징 영역에 추가하려면 git add 명령어를 사용한다.
  • Repository (리포지토리)

    • Repository(리포지토리)는 프로젝트의 모든 정보와 히스토리를 담고 있는 데이터베이스 같은 저장소다.
    • Git 리포지토리에는 코드뿐만 아니라, 커밋, 브랜치, 태그 정보 등도 포함된다.
    • 리포지토리는 크게 두 가지로 구분된다:
      1. Local Repository (로컬 리포지토리)
        • 사용자의 PC에 저장된 리포지토리로, 사용자가 직접 커밋, 수정, 브랜치 관리 등의 작업을 할 수 있다.
      2. Remote Repository (리모트 리포지토리)
        • 네트워크 상의 다른 서버에 저장된 리포지토리다. 여러 사람이 함께 작업할 때 사용하며, GitHub, GitLab 등의 서비스가 대표적이다.

3. 실제 코드 예시

  • Directory 생성 및 이동

    mkdir my_project  # 'my_project'라는 이름의 디렉토리 생성
    cd my_project     # 'my_project' 디렉토리로 이동
  • Git 초기화 및 Repository 생성

    git init  # 현재 디렉토리를 Git 리포지토리로 초기화
  • 파일 생성 및 Staging

    echo "Hello, Git!" > readme.txt   # 'readme.txt'라는 파일에 "Hello, Git!" 문자열 저장
    git add readme.txt               # 'readme.txt'를 스테이징 영역에 추가
  • Commit

    git commit -m "Initial commit"   # 스테이징 영역의 변경사항을 리포지토리에 커밋
  • Remote Repository 연결

    git remote add origin [GitHub 또는 GitLab의 리포지토리 주소]  # 리모트 리포지토리와 연결
    git push -u origin master                                    # 변경사항을 리모트 리포지토리에 푸시

4. 기본 용어 설명

  • Commit (커밋)

    • 리포지토리에 파일 및 디렉토리의 변경사항을 기록하는 행위다. 각각의 커밋은 고유한 ID와 메시지를 가진다. 이를 통해 이전 상태로 롤백하거나, 언제 어떤 변경사항이 있었는지 추적할 수 있다.
  • Branch (브랜치)

    • 프로젝트의 특정 버전을 가리키는 포인터다. 기본적으로 'master' 또는 'main'이라는 이름의 브랜치가 생성된다. 새로운 기능 개발 또는 버그 수정 시, 새 브랜치를 생성해 작업하고 완료 후 메인 브랜치에 병합(merge)하는 방식으로 진행한다.

1개의 댓글

comment-user-thumbnail
2023년 8월 18일

공감하며 읽었습니다. 좋은 글 감사드립니다.

답글 달기