9.0 약간의 역사
Git DVCS가 처음 만들어진 이후로 기본 브랜치는 master
라는 이름을 가졌어. 모든 Git 저장소는 master
브랜치를 가지고 있었어, 개발자가 이를 삭제하지 않는 한 말이지. 하지만 master
브랜치는 소프트웨어 개발 세계에서 중요한 역할을 하기 때문에 삭제하는 경우는 드물었어.
컴퓨터 산업에서의 master
와 slave
용어 사용은 2020년 여름 여러 시위와 사회적 불안과 함께 주목을 받았어. 공개 토론 중에 master
에 대한 몇 가지 대안들이 등장했어, 예를 들어 default
나 primary
같은 것들. 그러나 main
이 가장 인기 있는 용어가 되었어.
GitHub는 master
용어를 Git 저장소 초기화에서 사용하지 않기로 결정했어. GitHub에서 master
를 main
으로 전환할 수 있어, 계정 설정의 Repositories에서 설정하거나 다음 명령어를 사용해서:
$ git branch -m master main
강의에서는 계속해서 master
용어를 사용할거야. 전환에 대한 자세한 내용은 다음 링크에서 확인할 수 있어:
9.1 Git이란 무엇이며 왜 필요한가
Git은 강력한 버전 관리 시스템이야, 소프트웨어 개발 중에 소스 코드의 변경 사항을 추적하는 데 사용돼. 이는 개발자들이 파일의 다양한 버전을 보존하고 여러 사람이 공동 프로젝트에 협력할 수 있게 해줘.
Git의 기본 개념들:
저장소 (Repository)
저장소 (또는 "repo")는 프로젝트의 모든 변경 사항과 파일 버전을 포함한 전체 기록을 저장하는 곳이야. Git 저장소에는 작업 디렉토리, 인덱스 (또는 스테이지), 객체 데이터베이스가 포함돼.
커밋 (Commits)
커밋 (commit)
은 프로젝트의 저장된 상태야. Git의 각 커밋은 프로젝트에 어떤 변경 사항이 있었는지, 누가 언제 했는지에 대한 정보를 포함해. 커밋은 프로젝트의 역사를 구성하며, 언제든지 이전 버전으로 돌아갈 수 있게 해줘.
브랜치 (Branches)
브랜치 (branch)
는 독립적인 개발 라인이야. 기본적으로, Git은 main (이전에는 master)
브랜치를 생성해. 새로운 기능 개발이나 버그 수정을 위해 새로운 브랜치를 생성하고, 그런 다음 이를 메인 브랜치로 다시 병합할 수 있어.
병합과 리베이스 (Merge and Rebase)
병합 (merge)
과 리베이스 (rebase)
는 한 브랜치에서 다른 브랜치로 변경 사항을 통합하는 두 가지 방법이야. 병합은 두 브랜치의 기록을 결합하여 새로운 커밋을 생성하고, 리베이스는 한 브랜치의 커밋을 다른 브랜치의 상단으로 이동시켜 커밋 기록을 변경해.
9.2 Git의 기본 명령어
다음은 버전 관리를 위한 Git의 기본 명령어들에 대한 표야:
명령어 | 설명 |
---|---|
git init |
현재 디렉토리에 새로운 Git 저장소를 초기화해. |
git clone |
URL에서 저장소를 새로운 디렉토리로 복제해. |
git add |
다음 커밋을 위한 인덱스에 파일을 추가해. |
git commit |
준비된 변경 사항을 저장소에 고정해. |
git push |
로컬 저장소의 변경 사항을 원격 저장소로 보낼 수 있어. |
git pull |
원격 저장소의 최신 버전으로 현재 브랜치를 업데이트해. |
git branch |
브랜치를 보여주거나, 생성하거나 삭제할 수 있어. |
git merge |
지정된 브랜치의 변경 사항을 현재 브랜치로 병합해. |
git rebase |
새로운 베이스로 변경 사항을 이동해 (대개는 다른 브랜치). |
이 명령어들은 Git에서 작업하는 데 기본 도구를 제공해, 코드 변경 사항, 브랜치, 병합을 프로젝트의 크기에 상관없이 관리할 수 있도록 해줘. 다음 강의에서 더 자세히 다뤄볼거야.
9.3 코드 저장을 위한 세 곳
코드에 대한 버전 관리 시스템을 사용할 때, 대략적으로 코드가 세 곳에 저장될 거야:
1. 원격 저장소:
일반적으로 GitHub, GitLab, Bitbucket 같은 서비스에 호스팅되는 코드의 중앙 저장소야. 이들은 코드의 중앙 집중 저장소를 제공하며 협업의 기초야.
원격 저장소는 개발자들이 변경 사항을 공유하고, 노력을 동기화하고, 프로젝트의 변경 사항 기록을 유지할 수 있게 해줘. 또한 자동화 프로세스를 위한 통합 지점 역할도 해, 예를 들어 빌드, 테스트, 애플리케이션 배포 같은 것들.
2. 로컬 저장소:
로컬 저장소는 자신의 컴퓨터에 저장된 개인 복사본이야. 여기서 모든 Git 작업 (커밋, 브랜칭, 병합)을 인터넷 연결 없이 수행할 수 있어.
로컬 저장소는 개발자들이 동료들로부터 독립적으로 작업하고, 실험하고, 새로운 기능을 생성하거나, 오류를 수정할 수 있게 해, 변경 사항이 병합되고 원격 저장소로 전송되기 전까지.
3. 작업 디렉토리:
컴퓨터의 작업 디렉토리는 현재 작업 중인 프로젝트의 최신 파일을 포함해. 여기서 파일을 보고 수정하거나 새 기능을 추가하거나 오류를 수정할 수 있어.
변경 사항을 인덱스 (staging area)에 추가한 다음 로컬 저장소에 커밋할 수 있어. 작업 디렉토리는 저장소의 현재 브랜치와 연결되어 있으며, 브랜치를 변경하면 작업 디렉토리의 내용도 변경돼.
이 구성 요소들은 함께 강력한 소스 코드 관리 인프라를 제공하며, 개발자들이 프로젝트 기록을 관리하고, 협력하며, 코드에 대한 책임을 나눌 수 있게 해줘.
9.4 GitHub: 가장 인기 있는 무료 저장소
GitHub는 소스 코드 호스팅을 위한 선두 웹 플랫폼이야, Git 버전 관리 시스템을 사용해. 2008년에 설립된 이 플랫폼은 전 세계 개발자들에게 중요한 도구 중 하나로 빠르게 자리 잡았어.
GitHub는 사용자들이 프로젝트를 관리할 저장소를 만들고, 코드의 변경 사항을 추적하며, 다른 개발자들과 협력하고, 프로젝트를 공개 또는 비공개로 개발할 수 있게 해줘. 포크, 브랜치, 풀 리퀘스트 및 병합과 같은 기능을 제공하며, 개발자들이 쉽게 프로젝트에서 협력할 수 있게 해줘.
GitHub는 문제 추적, 기능 요청, 작업 관리 및 각 프로젝트에 대한 위키 기능도 포함하고 있어. 플랫폼은 수많은 도구 및 서비스와 통합되어 개발, 테스트 및 애플리케이션 배포를 위한 광범위한 자동화 기능을 제공해.
GitHub는 광범위한 개발자 커뮤니티를 지원하며, 이 커뮤니티에서는 프로그래밍의 모범 사례, 프로젝트 관리 등 다양한 주제가 활발히 논의돼. 이는 프로젝트 관리 도구일 뿐만 아니라 개발자들이 지식과 경험을 공유할 수 있는 커뮤니티의 중심 역할을 해.
9.5 GitHub에 가입하기
1단계. https://github.com에 접속해.
2단계. 가입해…
3단계. 새 저장소를 만들기 위해 "New" 버튼을 클릭해.
4단계. 저장소 이름을 입력하고 그 속성을 설정해.
5단계. 프로젝트에 README 파일을 추가해 – 나중에 필요할 거야.
6단계. "Create repository"를 클릭해.
GO TO FULL VERSION