Git 용어 및 기본 명령

Git 용어

Namespace

네임스페이스는 사용자 이름 또는 그룹 이름 중의 하나입니다.

예를 들어, Jo가 gitlab@example.com 사용자이고 사용자 이름을 jo로 선택했다고 가정합니다. https://gitlab@example.com/jo에서 Jo의 프로필을 볼 수 있습니다. jo는 네임스페이스입니다.

Jo는 GitLab에 그룹을 만들고 그룹 경로 test-group를 선택했습니다. 그룹은 https://gitlab@example.com/test-group에서 액세스 할 수 있습니다. test-group은 네임스페이스입니다.

Repository

GitLab의 파일은 컴퓨터의 폴더 또는 디렉토리에 있는 것과 유사한 repository에 있습니다. Remote repository는 GitLab의 파일을 참조하고 컴퓨터의 사본을 local 사본이라고 합니다. GitLab의 project는 파일을 보유하는 리포지토리를 보유하는 것입니다. 종종 "repository"라는 단어는 "repo"로 축약됩니다.

Fork

다른 사람의 리포지토리를 복사하려면, 프로젝트를 포크 합니다. 포크를 통해, 프로젝트 파일 및 설정을 수정하기 위한 읽기 및 쓰기 권한을 갖도록 프로젝트 사본을 자신의 네임스페이스에 생성합니다.

예를 들어, 이 프로젝트 https://gitlab.com/gitlab-tests/sample-project/ 를 네임스페이스로 포크 하면, 네임스페이스(https://gitlab.com/your-namespace/sample-project/)에 리포지토리 사본이 생성됩니다. 여기에서, 컴퓨터로 clone 하고 파일 작업을 수행하고, 원하는 경우 제안된 변경사항을 원래 리포지토리로 다시 제출할 수 있습니다.

Download vs Clone

컴퓨터에 원격 저장소 파일의 복사본을 만들려면, download 하거나 clone 할 수 있습니다. Download 하면 GitLab의 원격 저장소와 동기화할 수 없습니다.

반면에 리포지토리를 clone 하면, 해당 파일의 복사본을 로컬 컴퓨터에 다운로드하지만, 원격 리포지토리와의 Git 연결을 유지하여, 컴퓨터에서 해당 파일을 작업한 다음 변경사항을 GitLab에 업로드할 수 있습니다.

Pull과 Push

리포지토리의 로컬 사본을 저장하고 컴퓨터에서 파일을 수정한 후, 변경사항을 GitLab에 업로드할 수 있습니다. 이를 GitLab으로 pushing이라고 합니다. git push 명령으로 수행됩니다.

원격 저장소가 변경되면, 로컬 사본이 그 뒤에 있게 됩니다. 원격 저장소의 새 변경사항으로 업데이트할 수 있습니다. 이것은 GitLab에서 pulling이라고 합니다. git pull 명령으로 수행됩니다.

Git 기본 명령

이 가이드의 목적을 위해 GitLab.com에 있는 예제 프로젝트를 사용합니다.

이를 사용하려면, GitLab.com에 로그인하고 예제 프로젝트를 본인의 네임스페이스에 포크 하여 자신만의 복사본을 가지고 놀 수 있습니다. 샘플 프로젝트는 다음에서 사용할 수 있습니다.

https://gitlab.com/<your-namespace>/sample-project/

이 가이드를 따르기 위해 다른 프로젝트를 선택할 수도 있습니다. 그런 다음 예제 URL을 자신의 프로젝트로 바꿉니다.

기존 GitLab 저장소를 컴퓨터에 복사하여 시작하려면, 리포지토리 복제 방법을 참조하세요. 반면에 컴퓨터에서 GitLab으로 기존 폴더를 업로드하여 시작하려면, 로컬 폴더를 Git 리포지토리로 변환하는 방법을 참조하세요.

리포지토리 복제

기존 원격 저장소에서 로컬로 작업을 시작하려면, git clone <repository path>명령을 사용하여 복제하십시오. 선호하는 인증 방법에 따라 HTTPS 또는 SSH를 통해 복제할 수 있습니다.

프로젝트의 랜딩 페이지로 이동하고 Clone를 클릭하여 두 경로(HTTPS 및 SSH)를 모두 찾을 수 있습니다. GitLab은 명령 줄에 복사하여 붙여 넣을 수 있는 두 경로를 모두 묻는 메시지를 표시합니다.

예를 들어, 샘플 프로젝트를 고려하면 다음과 같습니다.

  • HTTPS를 통해 clone 하려면, https://gitlab.com/gitlab-tests/sample-project.git을 사용합니다.
  • SSH를 통해 clone 하려면, git@gitlab.com:gitlab-tests/sample-project.git을 사용합니다.

시작하려면 저장소 파일을 추가하려는 디렉토리에서 터미널 창을 열고, 아래 설명된 대로 git clone 명령 중 하나를 실행하십시오.

두 명령 모두 프로젝트 이름을 따서 명명된 폴더에 파일 사본을 다운로드하고 원격 저장소와의 연결을 유지합니다. 그런 다음 cd sample-project로 새 디렉토리로 이동하여 로컬에서 작업을 시작할 수 있습니다.

HTTPS를 통해 Clone

HTTPS를 통해 https://gitlab.com/gitlab-tests/sample-project/를 복제하려면 :

git clone https://gitlab.com/gitlab-tests/sample-project.git

참고 : Windows에서, 잘못된 비밀번호를 여러 번 입력하고 GitLab이 Access denied을 응답하는 경우, HTTPS를 통해 clone 하려면 네임스페이스(사용자 이름 또는 그룹 이름)를 추가해야 할 수 있습니다. (git clone https://namespace@gitlab.com/gitlab-org/gitlab.git)

SSH를 통해 Clone

SSH를 통해 git@gitlab.com:gitlab-tests/sample-project.git을 복제하려면 :

git clone git@gitlab.com:gitlab-tests/sample-project.git

SSH 기본 포트 22번이 아닌 9022번 포트를 사용하면 :

git clone ssh://git@gitlab.com:9022/gitlab-tests/sample-project.git

로컬 디렉토리를 리포지토리로 변환

로컬 폴더에 파일이 있고 이를 저장소로 변환하려면, git init 명령을 통해 폴더를 초기화해야 합니다. 그러면 Git이 해당 디렉토리를 저장소로 추적하기 시작합니다. 이렇게 하려면 변환하고 실행하려는 디렉토리에서 터미널을 엽니다.

git init

이 명령은 Git 레코드 및 구성 파일이 포함된 디렉터리에 .git 폴더를 만듭니다. 이러한 파일을 직접 편집하지 않는 것이 좋습니다. 그런 다음, 다음 단계에서 Git이 올바른 프로젝트에 파일을 업로드할 수 있도록 원격 저장소에 경로를 추가합니다.

원격 저장소 추가

로컬 디렉토리에 "원격 저장소를 추가"하면, Git에 GitLab에 있는 특정 프로젝트의 경로가 컴퓨터에 있는 특정 폴더에 해당한다는 것을 알릴 수 있습니다. 이렇게 하면, 로컬 폴더가 특정 원격 프로젝트에 대한 로컬 콘텐츠로 Git에 의해 식별됩니다.

로컬 사본에 원격 저장소를 추가하려면 다음을 수행하십시오.

  1. GitLab에서 파일을 보관할 새 프로젝트를 만듭니다.
  2. 이 프로젝트의 홈페이지를 방문하여, Push an existing folder까지 아래로 스크롤한 다음, git remote add로 시작하는 명령을 복사합니다.
  3. 컴퓨터의 초기화한 디렉토리에서 터미널을 열고, 복사한 명령을 붙여 넣고 enter을 누릅니다.
git remote add origin git@gitlab.com:username/projectpath.git

그런 다음, 파일을 준비하고 GitLab에 업로드할 수 있습니다.

프로젝트의 최신 변경사항 다운로드

프로젝트의 최신 사본으로 작업하려면(프로젝트 작업을 시작할 때마다 이 작업을 수행하는 것이 중요), 마지막으로 프로젝트를 clone 하거나 pull 한 이후 사용자가 변경한 모든 사항을 pull 합니다. <name-of-branch>을 위해 master를 사용하여, 메인 브랜치 코드 또는 현재 작업하고 있는 브랜치의 이름을 얻습니다.

git pull <REMOTE> <name-of-branch>

리포지토리를 복제할 때, REMOTE는 일반적으로 origin입니다. 리포지토리가 복제된 위치이며 원격 서버에 있는 저장소의 SSH 또는 HTTPS URL을 나타냅니다. <name-of-branch>는 일반적으로 master이지만, 기존 브랜치일 수 있습니다. 필요에 따라 명명된 remote 및 브랜치를 추가로 만들 수 있습니다.

Git 원격 문서에서 Git이 원격 저장소를 관리하는 방법에 대해 자세히 알아볼 수 있습니다.

원격 저장소 보기

원격 저장소를 보려면, 다음을 입력하십시오.

git remote -v

-v 플래그는 자세한 정보(verbose)를 의미합니다.

깃랩 문서 바로가기