Git 시작하기
Git은 코드 변경 사항을 추적하고 다른 사람들과 협업하는 데 사용하는 버전 관리 시스템입니다. 많은 Git 작업에 GitLab 웹 인터페이스를 사용할 수 있지만, Git 명령어를 이해하면 추가적인 유연성과 제어가 가능합니다.
Git은 코드 변경 사항을 추적하고 다른 사람들과 협업하는 데 사용하는 버전 관리 시스템입니다. GitLab은 CI/CD 및 소프트웨어 개발 라이프사이클을 관리하는 데 도움이 되는 다른 기능을 제공하는 웹 기반 Git 리포지터리 관리자입니다.
많은 Git 작업에 GitLab 웹 인터페이스를 사용할 수 있지만, Git 명령어를 이해하면 추가적인 유연성과 제어가 가능합니다.
Git 학습은 더 큰 워크플로우의 일부입니다:

학습 경로를 선택하세요:
- Git 설치
- 튜토리얼: 첫 번째 Git 커밋 만들기
- Git 개념 이해: 계속 읽기
리포지터리#
Git 리포지터리는 프로젝트의 모든 파일, 폴더 및 버전 히스토리를 포함하는 디렉터리입니다. Git이 코드 변경 사항을 관리하고 추적하는 중앙 허브 역할을 합니다.
Git 리포지터리를 초기화하거나 기존 리포지터리를 복제하면 Git은 프로젝트 디렉터리 내에 숨겨진 디렉터리 .git을 만듭니다.
이 디렉터리에는 Git이 리포지터리를 관리하는 데 사용하는 모든 필수 메타데이터와 객체가 포함되며,
파일에 가해진 모든 변경 사항의 완전한 히스토리도 포함됩니다.
Git은 파일 수준에서 변경 사항을 추적하므로 시간이 지남에 따라 개별 파일에 가해진 수정 사항을 볼 수 있습니다.
자세한 내용은 리포지터리를 참조하세요.
작업 디렉터리#
작업 디렉터리는 코드를 변경하는 곳입니다. Git 리포지터리를 복제하면 작업 디렉터리에 리포지터리의 로컬 복사본을 만듭니다. 파일을 편집하고, 새 파일을 추가하고, 코드를 테스트할 수 있습니다. 협업하려면 다음을 수행할 수 있습니다:
- Commit: 작업 디렉터리에서 변경 사항을 만든 후 해당 변경 사항을 로컬 리포지터리에 커밋합니다.
- Push: 변경 사항을 GitLab에 호스팅된 원격 Git 리포지터리로 push합니다. 이렇게 하면 변경 사항이 다른 팀 구성원에게 제공됩니다.
- Pull: 다른 사람이 원격 리포지터리에서 만든 변경 사항을 pull하여 로컬 리포지터리가 최신 변경 사항으로 업데이트되었는지 확인합니다.
자세한 내용은 일반적인 Git 명령어를 참조하세요.
브랜치#
Git에서는 브랜치를 사용하여 서로의 작업에 방해받지 않고 다양한 기능, 버그 수정 또는 실험을 동시에 수행할 수 있습니다.
브랜칭을 사용하면 기본 브랜치에 영향을 주지 않고 변경 사항을 만들고 테스트할 수 있는 격리된 환경을 만들 수 있습니다.
GitLab에서 기본 브랜치는 보통 main이라고 합니다.
브랜치 머지#
기능이 완료되거나 버그가 수정되면 브랜치를 기본 브랜치로 머지할 수 있습니다. 이를 머지 리퀘스트에서 수행할 수 있습니다. 머지는 변경 히스토리를 보존하면서 한 브랜치의 변경 사항을 다른 브랜치로 가져오는 안전한 방법입니다.
브랜치 간에 충돌이 있는 경우(예: 두 브랜치 모두에서 동일한 코드 줄을 수정한 경우) GitLab은 이를 머지 충돌로 표시합니다. 이러한 충돌은 코드를 검토하고 편집하여 수동으로 해결해야 합니다.
브랜치 삭제#
성공적인 머지 후에 더 이상 필요하지 않으면 브랜치를 삭제할 수 있습니다. 불필요한 브랜치를 삭제하면 리포지터리를 정리되고 관리하기 쉽게 유지하는 데 도움이 됩니다.
작업이 손실되지 않도록 최종 머지 후 브랜치를 삭제하기 전에 모든 변경 사항이 기본 브랜치에 통합되었는지 확인하세요.
자세한 내용은 브랜치를 참조하세요.
Git 워크플로우 이해#
Git 워크플로우로 코드를 관리하고, 다른 사람들과 협업하고, 프로젝트를 정리된 상태로 유지할 수 있습니다. 표준 Git 워크플로우에는 다음 단계가 포함됩니다:
- 리포지터리 복제: 머신에 리포지터리를 복제하여 로컬 복사본을 만듭니다. 원본 리포지터리에 영향을 주지 않고 프로젝트를 작업할 수 있습니다.
- 새 브랜치 만들기: 변경하기 전에 새 브랜치를 만드는 것이 좋습니다. 이렇게 하면 변경 사항이 격리되어 기본 브랜치에서 다른 사람의 작업에 방해받지 않습니다.
- 변경 사항 만들기: 작업 디렉터리의 파일을 변경합니다. 새 기능을 추가하거나 버그를 수정하거나 다른 수정을 할 수 있습니다.
- 변경 사항 스테이징: 파일을 변경한 후 커밋하려는 변경 사항을 스테이징합니다. 스테이징은 Git에게 다음 커밋에 포함되어야 하는 변경 사항을 알려줍니다.
- 변경 사항 커밋: 스테이징된 변경 사항을 로컬 리포지터리에 커밋합니다. 커밋은 작업의 스냅샷을 저장하고 파일에 대한 변경 사항의 히스토리를 만듭니다.
- 변경 사항 push: 다른 사람들과 변경 사항을 공유하려면 원격 리포지터리로 push합니다. 이렇게 하면 변경 사항이 다른 협업자에게 제공됩니다.
- 브랜치 머지: 변경 사항이 검토되고 승인되면 브랜치를 기본 브랜치(예:
main)에 머지합니다. 이 단계는 변경 사항을 프로젝트에 통합합니다.
포크#
일부 조직, 특히 오픈 소스 프로젝트를 작업하는 조직은 다른 워크플로우를 사용할 수 있습니다. 예를 들어 포크.
포크는 자신의 네임스페이스에 존재하는 리포지터리의 개인 복사본입니다. 오픈 소스 프로젝트에 기여하거나 팀이 중앙 집중식 리포지터리를 사용할 때 이 워크플로우를 사용합니다.
Git 설치#
Git 명령어를 사용하고 GitLab 프로젝트에 기여하려면 컴퓨터에 Git 클라이언트를 다운로드하고 설치해야 합니다.
설치 프로세스는 운영 체제에 따라 다릅니다. 예를 들어 Windows, MacOS 또는 Linux. Git 설치 방법에 대한 정보는 Git 설치를 참조하세요.
Git 명령어#
명령줄에서 Git과 상호 작용하려면 Git 명령어를 사용할 수 있습니다:
git clone: 리포지터리를 로컬 머신으로 복제합니다.git branch: 로컬 리포지터리의 브랜치를 나열, 생성 또는 삭제합니다.git checkout: 로컬 리포지터리의 다른 브랜치로 전환합니다.git add: 커밋할 변경 사항을 스테이징합니다.git commit: 스테이징된 변경 사항을 로컬 리포지터리에 커밋합니다.git push: 로컬 커밋을 원격 리포지터리로 push합니다.git pull: 원격 리포지터리에서 변경 사항을 가져와 로컬 브랜치에 머지합니다.
더 포괄적인 정보와 자세한 설명은 일반적인 Git 명령어 가이드를 참조하세요.
Git에서 SSH 사용#
원격 리포지터리로 작업할 때 안전한 통신을 위해 SSH를 사용해야 합니다.
GitLab은 SSH 프로토콜을 사용하여 Git과 안전하게 통신합니다. GitLab 원격 서버에 인증하기 위해 SSH 키를 사용하면 매번 사용자 이름과 비밀번호를 입력할 필요가 없습니다.
GitLab에서 SSH를 사용하려면:
- 로컬 시스템에서 SSH 키 쌍을 생성합니다.
- SSH 키를 GitLab 계정에 추가합니다.
- GitLab에 대한 SSH 연결을 확인합니다.
자세한 내용은 GitLab에서 SSH 키 사용을 참조하세요.
