Git Challenge

Git이 너무 어렵게만 느껴진다면?folder-icon

안녕하세요! 저희는 팀 MergeMasters입니다. (만든 이들 : 박용준, 박정제, 박유현, 윤채현) Git Challenge는 Git에 대한 문제를 실제 상황처럼 구현된 환경에서 학습할 수 있는 서비스입니다. 실제 프로젝트나 시나리오에서 발생할 수 있는 다양한 상황들을 경험하고 실전에서 해결할 수 있도록 도움을 드리는 것을 목표로 하고 있습니다.

다른 문의 및 개선요청 사항이 있다면github-image깃허브 이슈란또는 dbscogus4467@naver.com 으로 문의주세요 🙋🏻‍♀️

Git이란?

Git은 분산 버전 관리 시스템으로, 소스 코드 및 프로젝트 관리에 사용됩니다. 여러 명의 개발자가 협업하고 소스 코드를 효과적으로 관리하기 위한 도구로 많이 사용됩니다. Git의 핵심 개념에 대해서 알아볼까요?

Repository (저장소)

  • Git에서 프로젝트를 저장하는 곳을 의미합니다.
  • 로컬 저장소와 원격 저장소로 나뉩니다.

Commit (커밋)

  • 변경사항을 저장소에 기록하는 단위입니다.
  • 각 커밋은 고유한 해시값을 가지며, 변경사항의 설명을 포함합니다.

Branch (브랜치)

  • 코드를 나누어 개발하거나 실험할 때 사용하는 가지(branch)입니다.
  • 각 브랜치는 독립적으로 관리되며, 변경사항을 다른 브랜치에 영향을 주지 않습니다.

버전 관리란?

버전 관리는 파일 변화를 시간에 따라 기록하여 나중에 특정 시점의 버전을 다시 가져올 수 있는 시스템입니다. 주로 소프트웨어 소스 코드의 변경 이력을 관리하는 데 사용되지만, 실제로는 모든 컴퓨터 파일의 버전을 관리할 수 있습니다. 우리가 버전 관리를 알아야 하는 이유는 다양합니다. 이 시스템을 통해 개발자는 각 파일을 이전 상태로 되돌리거나 프로젝트 전체를 이전 상태로 복원할 수 있습니다. 또한 시간에 따른 수정 내용을 비교하거나, 문제의 원인을 추적할 수 있으며, 파일을 잃어버렸거나 잘못 수정했을 때 쉽게 복구할 수 있습니다. Git은 이러한 목적을 위한 분산 버전 관리 시스템의 한 예입니다. 여러 명의 개발자가 동시에 프로젝트에 참여하면서 발생하는 문제를 해결하기 위해 버전 관리 시스템이 사용됩니다.

GitHub란?

GitHub는 Git을 기반으로 하는 웹 기반 협업 개발 플랫폼으로, 코드와 파일의 버전을 효과적으로 관리하며 다수의 개발자들이 함께 작업할 수 있도록 지원합니다. 프로젝트의 모든 파일과 이력을 저장하는 저장소, 이슈 트래킹, 풀 리퀘스트를 통한 코드 리뷰, GitHub Actions를 활용한 자동화 등 다양한 기능을 제공합니다.

Git 주요 명령어

git init

  • 새로운 Git 저장소를 초기화합니다.
  • 현재 작업 디렉토리를 Git 저장소로 설정하고, 숨김 폴더인 .git을 생성합니다.

git config

  • Git의 환경 설정을 관리합니다.
  • 사용자 정보 설정이나 저장소별 설정을 구성할 수 있습니다.

git add

  • 변경된 파일을 스테이징 영역에 추가합니다.
  • git add <파일명> 혹은 git add .과 같이 사용합니다.

git status

  • 작업 디렉토리와 스테이징 영역의 상태를 확인합니다.
  • 어떤 파일이 변경되었고, 어떤 파일이 스테이징되었는지 등을 보여줍니다.

git commit

  • 스테이징 영역에 있는 파일들의 상태를 저장소에 기록합니다.
  • git commit -m "커밋 메시지"와 같이 사용하여 메시지를 작성합니다.

git branch

  • 브랜치를 생성, 조회하거나 삭제할 때 사용합니다.
  • git branch로 현재 브랜치 목록을 확인하거나 git branch <브랜치명>으로 새 브랜치를 생성합니다.

git switch (또는 git checkout)

  • 다른 브랜치로 전환합니다.
  • git switch <브랜치명> 또는 git checkout <브랜치명>으로 사용합니다.

git checkout

  • 특정 커밋, 브랜치, 또는 파일로 작업 디렉토리를 되돌립니다.
  • 주로 git checkout <파일명>이나 git checkout <커밋해시>와 같이 사용됩니다.