Git이란

깃(Git)은 소프트웨어 개발 프로젝트를 관리하기 위한 분산 버전 관리 시스템(DVCS) 중 하나입니다. 소프트웨어 개발자들이 소스 코드의 변경 내용을 효과적으로 추적하고 협업하는 데 사용됩니다.

깃의 주요 특징

분산 버전 관리: 깃은 프로젝트의 모든 이력과 변경 내용을 로컬 저장소에 저장하므로 네트워크에 연결되지 않은 상태에서도 작업이 가능하며, 중앙 서버에 의존하지 않습니다.

브랜치: 브랜치를 지원하여 여러 개발자가 동시에 작업하고 서로 다른 기능을 개발할 수 있습니다. 이를 통해 동시에 다양한 작업을 진행할 수 있습니다.

병합(Merging): 브랜치에서 개발한 내용을 다시 통합하는 기능이 있어 여러 사람이 개발한 내용을 하나로 합칠 수 있습니다.

이력 관리: 소스 코드의 변경 이력이 상세하게 기록되어 누가 언제 어떤 변경을 했는지를 쉽게 추적할 수 있습니다.

원격 저장소: 깃허브(GitHub)와 같은 원격 저장소를 통해 여러 사용자 간에 협업이 용이하며, 프로젝트의 백업과 공유가 가능합니다.

 

많은 개발자와 프로젝트에서 깃을 사용하여 소스 코드를 효과적으로 관리하고 협업합니다.

GitHub란

깃허브(GitHub)는 깃(Git)을 기반으로 하는 웹 기반의 버전 관리 플랫폼입니다. 개발자들이 소스 코드를 저장하고 관리하는데 사용되며, 프로젝트의 협업과 커뮤니케이션을 간편하게 도와줍니다. 깃허브는 코드 호스팅, 협업 도구, 이슈 트래킹, 코드 검토, 빌드 및 배포 등 다양한 개발 관련 기능을 제공합니다.

깃허브의 주요 특징

코드 호스팅: 개발자들은 깃허브를 사용하여 소스 코드를 저장하고 관리할 수 있습니다. 다양한 프로젝트가 깃허브에 호스팅되어 있으며, 다른 사용자들이 소스 코드를 참고하고 기여할 수 있습니다.

협업과 이슈 트래킹: 사용자들은 프로젝트에 이슈를 제기하고 토론할 수 있으며, 작업을 추적하고 문제를 해결하기 위한 기능들이 제공됩니다.

브랜치와 병합: 깃허브는 깃의 브랜치와 병합 기능을 활용하여 여러 개발자가 동시에 작업하고 소스 코드를 관리할 수 있도록 도와줍니다.

코드 검토: 코드 검토 기능을 통해 여러 사용자가 제안된 변경 사항을 확인하고 피드백을 주고받을 수 있습니다.

빌드 및 배포: 깃허브는 CI/CD(Continuous Integration/Continuous Deployment)를 지원하여 소프트웨어를 자동으로 빌드하고 테스트하며, 배포하는 프로세스를 구축할 수 있습니다.

오픈 소스 생태계: 많은 오픈 소스 프로젝트가 깃허브를 통해 관리되며, 전 세계의 개발자들이 이를 활용하고 기여합니다.

깃허브는 개발 생태계에서 널리 사용되며, 개발자들 간의 협업과 소스 코드 관리를 효과적으로 지원하는 중요한 도구 중 하나입니다.

GitHub 계정 생성

깃허브 링크 https://github.com/
상단에 링크를 클릭하여 깃허브 사이트에 접속합니다.


접속 후 우측 상단에 SignUp을 클릭하여 회원가입을 진행합니다.


사용할때 이메일을 입력 후 continue를 클릭해주세요
이메일은 가입 인증번호, repository 초대, 토큰, 비밀번호 재설정 등의 이메일이 전송될때 사용됩니다.


이후 사용하실 비밀번호를 입력해주세요. 사용가능한 비밀번호라면 continue 버튼이 활성화됩니다. 정책에 맞는 비밀번호를 입력 후 continue를 눌러주세요.


사용하실 이름을 설정해주세요. username은 계정의 이름이라고 생각하시면 됩니다. 추후에 변경이 가능하나 중복은 안됩니다. 입력 후 continue를 눌러주세요.


깃허브와 관련된 업데이트 및 공지사항을 전송받을지에 대한 여부입니다. 선택사항이니 저는 체크하지 않고 넘어가겠습니다.


사람인지 판단하는 퍼즐을 풀면 계정생성 버튼이 활성화됩니다. create해줍니다.


입력한 이메일로 인증번호가 전송됩니다. 메일함에 없다면 스팸메일함을 확인해주세요. 이메일로 전송된 번호를 입력해줍니다.


인증이 완료되면 개인 설정 페이지로 넘어갑니다. 설정을 해주셔도 되고 아래 skip을 눌러 넘어갈 수 있습니다. 저는 skip을 눌렀습니다.


대쉬보드 페이지로 넘어가면 가입완료입니다!

GitHub 저장소(Repository) 생성


상단에 +버튼을 눌러 New Repository를 눌러주세요.


Repository name에 원하는 저장소 이름을 입력해주세요. 프로젝트와 관련된 이름이나 작업의 이름을 적어주시면 됩니다.

저장소를 다른 이들에게 공개하려면 public, 비공개하려면 private을 설정해주세요. 나중에 변경이 가능합니다.

README file은 해당 저장소나 프로젝트에 대한 설명을 작성할 수 있는 파일입니다. 설정시 자동으로 생성되며 안하더라도 나중에 추가가 가능합니다.

각종 설정 후 페이지 하단에 create repository를 누르면 repository 생성이 완료됩니다.

Git 설치

Git을 설치하기 위해서 아래의 링크에 접속해줍니다.
https://git-scm.com/downloads

운영체제에 맞게 다운로드한 후 안내에 따라 설치해주시면됩니다.

맥북은 터미널에 하단과 같이 입력

brew install git

윈도우는 설치 완료 시 설치된 Git bash를 이용하면 리눅스 환경과 같이 터미널을 이용할 수 있습니다. 이곳에서 git 명령을 수행할 수 있습니다.

GitHub 첫걸음을 위한 사전 지식

1. GitHub 기초 작업 필수 개념: commit, push

커밋(Commit)
커밋은 깃에서 변경 내용을 로컬 저장소에 저장하는 작업을 말합니다.
개발자는 작업을 완료했을 때 해당 변경 내용을 커밋하여 로컬 저장소에 기록합니다.
각각의 커밋은 프로젝트의 특정 시점의 스냅샷으로서, 커밋 메시지를 통해 어떤 변경이 있었는지 명확하게 기록합니다.
커밋을 통해 소스 코드의 이력을 추적하고 필요한 경우 특정 시점으로 되돌릴 수 있습니다.

커밋의 기본 구조

git commit -m "커밋 메시지"

푸쉬(Push)

푸쉬는 로컬 저장소에 있는 변경 내용을 원격 저장소로 업로드하는 작업을 의미합니다.
로컬 저장소의 커밋들은 개발자가 작업을 마무리하고 다른 개발자들과 변경 사항을 공유할 때 원격 저장소로 푸쉬됩니다.
이를 통해 여러 개발자가 동시에 작업하고 있는 경우 다른 개발자들도 최신 변경 내용을 확인하고 자신의 로컬 저장소에 반영할 수 있습니다.

푸쉬의 기본 구조

git push [원격 저장소 이름] [브랜치 이름]

예를 들어, 일반적으로는 다음과 같이 사용됩니다

git push origin main

이 명령은 현재 작업 중인 브랜치의 변경 내용을 "origin"이라는 원격 저장소의 "main" 브랜치로 푸쉬하는 코드입니다.

커밋과 푸쉬를 함께 사용하면 개발자는 소스 코드의 변경 내용을 효과적으로 관리하고 협업할 수 있습니다.

2. 로컬 저장소와 원격 저장소

로컬 저장소(Local Repository)

  • 로컬 저장소는 개발자의 개인 컴퓨터에 위치한 저장소를 의미합니다.
  • 개발자는 자신의 로컬 컴퓨터에서 깃을 사용하여 프로젝트를 관리하고 변경 사항을 추적할 수 있습니다.
  • 로컬 저장소에서는 브랜치를 생성하고 변경 내용을 커밋할 수 있습니다.

원격 저장소(Remote Repository)

  • 원격 저장소는 인터넷이나 네트워크 상의 다른 위치에 위치한 중앙 서버 저장소를 의미합니다.
  • 깃허브(GitHub)는 가장 널리 사용되는 원격 저장소 중 하나입니다.
  • 원격 저장소는 로컬 저장소와 변경 사항을 주고받을 수 있습니다. 개발자는 로컬에서 작업한 내용을 원격 저장소에 푸시(push)하여 공유하거나, 원격 저장소에서 변경된 내용을 풀(pull)하여 자신의 로컬에 반영할 수 있습니다.
  • 여러 개발자가 동시에 프로젝트에 참여하고 협업할 때 원격 저장소는 중앙화된 저장소 역할을 합니다.
  • 로컬 저장소와 원격 저장소 간의 상호 작용을 통해 개발자들은 프로젝트의 변경 내용을 효과적으로 추적하고 여러 사람이 동시에 작업할 수 있게 됩니다.

로컬 저장소는 작업을 하고 변경 사항을 기록하는 개발자의 개인 작업 공간이며, 원격 저장소는 여러 개발자들이 공유하고 협업하는 중앙 저장소입니다.

3. 브랜치

브랜치(Branch)

브랜치는 깃에서 코드를 분리하고 독립적으로 관리할 수 있도록 하는 개념입니다.
브랜치를 사용하면 여러 개발자가 동시에 작업하거나 특정 기능을 개발할 때 각자 독립적인 작업 환경에서 작업할 수 있습니다.
각 브랜치는 프로젝트의 특정 상태를 나타내며, 변경 사항을 다루기 위해 사용됩니다.

주요 브랜치 관련 용어와 개념

메인 브랜치(Main/Branch):
프로젝트의 기본이 되는 브랜치로서, 주로 "main" 또는 "master"라는 이름으로 사용됩니다.
일반적으로 안정된 코드를 유지하고 배포하기 위해 사용됩니다.

피처 브랜치(Feature Branch):
특정 기능을 개발하기 위해 메인 브랜치에서 파생된 브랜치입니다.
개발자는 피처 브랜치에서 해당 기능을 구현하고 테스트한 후, 완료되면 메인 브랜치로 병합(merge)할 수 있습니다.

 

이어서...

브랜치 사용과 깃허브 작업플로우 및 명령어는 다음 글에서 이어집니다.
왕초보 깃허브 시작하기 : 2. 브랜치 사용과 GitHub 용어 및 명령어 정리

 

+ Recent posts