초보자도 이해하기 쉬운 git 설명
Data Analyst

빅데이터 관련 자료

초보자도 이해하기 쉬운 git 설명

carpe08 2024. 3. 9. 16:01
320x100
320x100

Git은 소스 코드 버전 관리 시스템(VCS)으로, 여러 명의 개발자가 협업하고 소스 코드의 변화를 효과적으로 관리할 수 있도록 도와주는 도구입니다. Git은 Linus Torvalds에 의해 만들어졌으며, 가장 널리 사용되는 버전 관리 시스템 중 하나입니다.

Git의 주요 특징:

  1. 분산 버전 관리 시스템(DVCS): Git은 분산 버전 관리 시스템으로, 모든 개발자가 전체 프로젝트의 히스토리를 가지고 있습니다. 이는 오프라인에서도 작업이 가능하고, 각자의 로컬에서 변경사항을 효과적으로 관리할 수 있게 합니다.
  2. 브랜치: Git은 가볍고 빠르게 브랜치를 생성하고 전환할 수 있습니다. 이를 통해 독립적으로 작업하거나 기능을 실험하는 데에 유용합니다.
  3. 병합(Merge): 브랜치에서의 작업이 완료되면, Git은 다른 브랜치와의 변경사항을 통합할 수 있습니다. 이를 통해 여러 명의 개발자가 동시에 작업할 수 있습니다.
  4. 리모트 저장소: Git은 중앙 저장소와 개발자들 간에 소스 코드를 주고받을 수 있는 원격 저장소를 지원합니다. GitHub, GitLab, Bitbucket 등은 Git을 기반으로 하는 원격 저장소 호스팅 서비스로, 협업과 코드 리뷰를 쉽게 할 수 있게 도와줍니다.

Git의 주요 명령어

  1. git init: 새로운 Git 저장소를 초기화합니다.
  2. git clone: 원격 저장소를 복제합니다.
  3. git add: 변경사항을 스테이징 영역에 추가합니다.
  4. git commit: 스테이징 영역에 있는 변경사항을 로컬 저장소에 반영합니다.
  5. git pull: 원격 저장소에서 최신 변경사항을 가져와 로컬 저장소에 병합합니다.
  6. git push: 로컬 저장소의 변경사항을 원격 저장소에 업로드합니다.
  7. git branch: 브랜치를 생성하거나 확인합니다.
  8. git merge: 브랜치를 병합합니다.
  9. git log: 커밋 로그를 확인합니다.
  10. git status: 작업 디렉토리의 상태를 확인합니다.

Git 관련 용어

  1. 로컬(Local): 여러분이 개발하는 컴퓨터에 있는 작업 영역을 말합니다. 여러분이 소스 코드를 수정하고 변경사항을 기록하는 곳입니다.
  2. 원격(Remote): 로컬 환경이 아닌 다른 컴퓨터에 있는 중앙 저장소를 의미합니다. 개발자들이 공유하는 공간으로, 여러분과 다른 개발자들이 함께 작업하고 코드를 주고받는 곳입니다.
  3. 스테이징(Staging): 로컬 환경에서 원하는 변경사항을 선택하여 일종의 "준비 영역"으로 만드는 과정입니다. 여기에 올라간 변경사항은 다음 커밋에 반영됩니다.
  4. 브랜치(Branch): 프로젝트에서 각자의 작업을 독립적으로 진행하기 위해 생성하는 별도의 작업 공간입니다. 새로운 기능을 개발하거나 버그를 수정할 때 주로 사용됩니다.
  5. 커밋(Commit): 로컬 환경에서 변경사항을 저장하는 것을 의미합니다. 커밋은 수정된 파일의 스냅샷을 찍어 기록하며, 프로젝트의 버전 히스토리에 남게 됩니다.
  6. 디렉토리(Directory): 파일들을 저장하는 폴더를 가리킵니다. 소스 코드 파일들이 저장되는 위치를 말합니다.
  7. 풀(Pull): 원격 저장소에서 최신 변경사항을 로컬로 가져오는 작업을 의미합니다. 다른 개발자가 작업한 내용을 자신의 로컬 환경에 반영하는 것입니다.
  8. 푸시(Push): 로컬에서 커밋한 변경사항을 원격 저장소에 업로드하는 작업을 의미합니다. 여러분이 만든 새로운 기능이나 수정사항을 다른 개발자들과 공유하고자 할 때 사용합니다.
  9. 페치(Fetch): 원격 저장소에서 최신 변경사항을 로컬로 가져오는 것입니다. 풀과는 다르게 가져온 변경사항을 로컬에 합치지는 않습니다. 페치 후에 로컬에서 별도로 합치는 작업을 할 수 있습니다.
  10. 마스터(Master): 기본 브랜치로, 주로 안정된 코드가 있는 곳을 가리킵니다. 프로젝트의 메인 브랜치입니다.
  11. 병합(Merge): 다른 브랜치의 변경사항을 현재 브랜치에 통합하는 것을 말합니다. 주로 기능 개발이나 버그 수정이 완료되면 사용됩니다.
  12. 충돌(Conflict): 두 개의 브랜치나 커밋에서 동일한 파일의 동일한 부분을 수정했을 때 발생하는 문제입니다. 충돌이 발생하면 개발자가 수동으로 충돌을 해결해야 합니다.
  13. 체크아웃(Checkout): 특정 브랜치나 커밋으로 전환하는 것입니다. 새로운 기능을 개발하거나 특정 버전으로 돌아가고자 할 때 사용됩니다.
  14. 원본(original): Fork(복제)한 저장소에서 원본 저장소를 의미합니다. Fork한 저장소에서의 변경사항을 원본 저장소에 통합하려면 Pull Request를 사용합니다.
  15. 풀 리퀘스트(Pull Request): 자신이 수정한 내용을 원본 저장소에 반영해달라고 요청하는 것입니다. 주로 오픈 소스 프로젝트에서 기여를 할 때 사용됩니다.
  16. 이슈(Issue): 프로젝트에서 해결해야 할 작업이나 버그 등을 추적하는데 사용되는 기능입니다. 버그 리포트, 새로운 기능 제안 등이 이슈로 등록됩니다.
  17. 토픽 브랜치(Topic Branch): 특정 주제나 작업에 중점을 둔 개별 브랜치를 말합니다. 작업을 완료하면 주로 마스터 브랜치와 병합됩니다.
  18. 프로토콜(Protocol): Git 원격 저장소에 접근하는 데 사용되는 통신 규약입니다. HTTPS, SSH 등이 대표적인 프로토콜입니다.
  19. 태그(Tag): 특정 시점의 커밋에 의미를 부여하기 위해 사용되는 것으로, 버전을 나타내기 위해 주로 사용됩니다.

 

Git은 강력하고 유연한 도구이지만, 처음 사용자에게는 익숙해지는 데 시간이 걸릴 수 있습니다.

기본 명령어와 워크플로를 익히면 효과적으로 협업 및 코드 관리를 할 수 있습니다.

 

320x100
320x100