Git Clone Branch – 특정 지점을 복제하는 방법
요약:
이 기사에서는 Git에서 특정 지점을 복제하는 방법에 대해 논의 할 것입니다. 이 작업을 수행하는 방법에 대한 단계별 지침과 설명을 제공하겠습니다. 또한 몇 가지 일반적인 질문을 해결하고 개인적인 경험을 바탕으로 자세한 답변을 제공합니다.
키 포인트:
1. MAC 설치 프로그램의 최신 GIT를 다운로드하여 설치하십시오 특정 지점을 복제하기 전에 Mac에 GIT를 설치해야합니다. 공식 GIT 웹 사이트를 방문하여 Mac 용 최신 설치 프로그램을 다운로드하십시오.
2. git 클론 명령을 사용하십시오 특정 지점을 복제하려면 git 클론 명령과 저장소 URL 및 지점 이름을 사용할 수 있습니다.
삼. GIT 버전 확인 : GIT의 호환 버전이 설치되어 있는지 확인하는 것이 중요합니다. 터미널에서 간단한 명령을 실행하여 GIT 버전을 확인할 수 있습니다.
질문 1 : git 클론은 모든 가지를 복제합니다?
답변 : 아니요, Git Clone 명령은 기본적으로 모든 지점을 복제하지 않습니다. 현재 체크 아웃 된 지점 또는 명령에 지정된 지점 만 복제합니다.
질문 2 : git 클론을 사용하여 특정 지점을 복제하는 방법?
답변 : Git Clone을 사용하여 특정 지점을 복제하려면 다음과 같이 명령의 끝에 지점 이름을 추가 할 수 있습니다. Git Clone
질문 3 : git 클론을 사용하여 한 번에 여러 가지를 복제 할 수 있습니까??
답변 : 아니요, Git Clone 만 한 번에 하나의 지점을 복제 할 수 있습니다. 여러 가지 분기를 복제하려면 각 지점마다 git 클론 명령을 별도로 실행해야합니다.
질문 4 : 특정 지점을 복제 한 후 다른 지점으로 어떻게 전환합니까??
답변 : 특정 지점을 복제 한 후 GIT 체크 아웃 명령을 사용하여 다른 지점으로 전환 할 수 있습니다. 단순히 GIT 체크 아웃을 실행하십시오
질문 5 : 로컬에 존재하지 않는 원격 지점을 복제 할 수 있습니까??
답변 : 예, 로컬에 존재하지 않는 원격 지점을 복제 할 수 있습니다. 저장소를 복제 할 때 Git은 복제하려는 저장소를 포함하여 원격 저장소에서 모든 지점을 가져옵니다.
질문 6 : 내가 복제하고 싶은 지점이 삭제 된 경우 어떻게?
답변 : 복제하려는 지점이 삭제 된 경우 복제 할 수 없습니다. 복제를 시도하기 전에 분기가 원격 저장소에 여전히 존재하는지 확인하십시오.
질문 7 : 복제 할 때 지점 대신 특정 커밋을 지정할 수 있습니까??
답 : 예, 복제 할 때 지점 대신 특정 커밋을 지정할 수 있습니다. Git Clone 명령의 지점 이름 대신 커밋 해시를 제공해야합니다.
질문 8 : 특정 지점 복제에 대한 제한 사항이 있습니까??
답변 : 특정 지점 복제에는 구체적인 제한이 없습니다. 그러나 복제하려는 지점에 필요한 권한과 액세스 권한이 있는지 확인하십시오.
질문 9 : 다른 원격 저장소에서 지점을 복제 할 수 있습니까??
답 : 예, 다른 원격 저장소에서 지점을 복제 할 수 있습니다. git 클론 명령에 저장소 URL과 브랜치 이름을 제공하면됩니다.
질문 10 : 원격 저장소의 최신 변경 사항으로 복제 된 지점을 업데이트하려면 어떻게해야합니까??
답변 : 원격 저장소의 최신 변경 사항으로 복제 된 브랜치를 업데이트하려면 Git Pull 명령을 사용할 수 있습니다. 복제 된 저장소 디렉토리로 이동하여 Git Pull을 실행하십시오.
Git Clone Branch – 특정 지점을 복제하는 방법
여기에서 Mac Installer 용 최신 GIT를 다운로드하여 설치하십시오.
git 클론은 모든 가지를 클론합니다
변경 사항 git-clone 수동
- 2.38.1 → 2.40.1 변경 사항 없음
- 2.38.0
10/02/22
- 2.36.1 → 2.37.7 변경 사항 없음
- 2.36.0
04/18/22
- 2.35.1 → 2.35.8 변경 사항 없음
- 2.35.0
01/24/22
- 2.32.1 → 2.34.8 변경 사항 없음
- 2.32.0
06/06/21
- 2.30.2 → 2.31.8 변경 사항 없음
- 2.30.1
02/08/21
- 2.30.0
12/27/20
- 2.29.1 → 2.29.3 변경 사항 없음
- 2.29.0
10/19/20
- 2.28.1 변경 사항 없음
- 2.28.0
07/27/20
- 2.27.1 변경 사항 없음
- 2.27.0
06/01/20
- 2.25.1 → 2.26.3 변경 사항 없음
- 2.25.0
01/13/20
실행하여 GIT 버전을 확인하십시오
이름
git -clone- 저장소를 새 디렉토리로 복제하십시오
개요
git 클론 [--template =] [-l] [-s] [-no-hardlinks] [-q] [-bare] [---mirror] [-o] [-b] [-u] [-reference] [-dissociate] ] 얕은 서브 모듈] [-[no-] 원격 서브 모듈] [-jobs] [--sparse] [-[no-] devject-shallow] [-filter = [-allofilter-submodules]] [-] []
설명
새로 생성 된 디렉토리에 저장소를 클론하고 복제 된 저장소의 각 분기에 대한 원격 트래킹 브랜치를 생성하고 (Git Branch-Remotes를 사용하여 볼 수 있음) 클로닝 된 저장소에서 지배되는 초기 지점을 생성하고 확인합니다’현재 활성 지점.
복제 후, 인수가없는 일반 git 페치는 모든 원격 트래킹 브랜치를 업데이트 할 것이며, 인수가없는 git 당김은 원격 마스터 브랜치를 현재 마스터 브랜치로 통합 할 것입니다 (이것은 “-“싱글 브랜치 “가 주어진 경우, 아래 참조).
이 기본 구성은 Refs/Remotes/Origin의 원격 분기 헤드에 대한 참조를 작성하고 원격을 초기화하여 달성됩니다.기원.URL 및 원격.기원.구성 변수를 가져옵니다.
옵션
클론이 클론 할 수있는 저장소가 로컬 컴퓨터에있을 때,이 플래그는 일반 “Git Aware”전송 메커니즘을 우회하고 객체 및 Refs 디렉토리 아래에 헤드와 모든 것을 만들어 저장소를 클론합니다. 아래 파일 .git/ 객체/ 디렉토리는 가능한 경우 공간을 절약하기 위해 딱딱합니다.
저장소가 로컬 경로로 지정된 경우 (E.g., /path/to/repo), 이것은 기본값이고-로컬은 본질적으로 NO-OP입니다. 저장소가 URL로 지정된 경우이 플래그는 무시됩니다 (그리고 로컬 최적화를 사용하지 않음). 지정-no-local은/path/to/repo가 주어질 때 기본값을 대신하여 일반 git 전송을 사용합니다.
메모:이 작업은 SRC를 수정하는 동안 CP -R SRC DST 실행과 유사한 소스 저장소에 동시 수정으로 경주 할 수 있습니다 .
–하드 링크가 없습니다
로컬 파일 시스템의 저장소에서 클로닝 프로세스를 강제하여 .하드 링크를 사용하는 대신 git/객체 디렉토리. 저장소의 백업을 시도하는 경우 바람직 할 수 있습니다.
클론에 대한 저장소가 로컬 컴퓨터에있는 경우 하드 링크를 사용하는 대신 자동으로 설정하십시오 .git/objects/info/객체를 소스 저장소와 공유하는 대안. 결과 저장소는 자체 객체없이 시작됩니다.
메모: 이것은 아마도 위험한 작업 일 가능성이 있습니다. 하다 ~ 아니다 그것이 무엇을하는지 이해하지 않는 한 그것을 사용하십시오. 이 옵션을 사용하여 저장소를 복제 한 다음 소스 리포지토리에서 분기를 삭제하거나 기존 커밋 명령을 사용하는 경우 일부 개체가 참조되지 않거나 매달릴 수 있습니다. 이 객체는 GIT 유지 보수 실행을 자동으로 호출하는 일반 GIT 작업 (예 : GIT 커밋)에 의해 제거 될 수 있습니다 . (GIT 유지 보수 참조 [1].)이 객체를 제거하고 복제 된 저장소에 의해 참조되면 복제 된 저장소가 손상됩니다.
-공유로 복제 된 저장소에서 -로컬 옵션없이 git repack을 실행하면 소스 저장소의 객체를 복제 된 저장소의 팩으로 복사하여 클론의 디스크 공간 절약을 제거합니다 . 그러나 기본적으로 -로컬 옵션을 사용하는 git gc를 실행하는 것이 안전합니다.
소스 리포지토리에서 -공유로 클로닝 된 저장소의 종속성을 깨고 싶다면 소스 리포지토리의 모든 객체를 복제 된 저장소의 팩으로 복사하기 위해 git repack -a를 실행할 수 있습니다.
–참조 [-if-table]
참조 저장소가 로컬 컴퓨터에있는 경우 자동으로 설정하십시오 .git/objects/info/reference 저장소에서 객체를 얻기 위해 대체. 이미 기존 저장소를 대체로 사용하면 복제중인 저장소에서 복사해야 할 객체가 적어 네트워크 및 로컬 스토리지 비용이 줄어 듭니다. -reference-if-table을 사용할 때는 기존 디렉토리가 클론을 중단하는 대신 경고를 건너 뜁니다.
메모: -공유 옵션 및 -dissociate 옵션에 대한 메모를 참조하십시오.
–해리
네트워크 전송을 줄이기 위해 -참조 옵션으로 지정된 참조 리포지토리에서 물체를 빌리고, 빌린 개체의 필요한 현지 사본을 만들어 복제 된 후에는 차용을 중지하십시오. 이 옵션은 다른 저장소에서 객체를 이미 빌린 저장소에서 로컬로 클로닝 할 때도 사용할 수 있습니다. 새 저장소는 동일한 저장소에서 객체를 빌릴 수 있으며이 옵션은 차입금을 중지하는 데 사용할 수 있습니다.
조용히 작동합니다. 진행 상황은 표준 오류 스트림에보고되지 않습니다.
구두로 달리십시오. 표준 오류 스트림에 대한 진행 상태보고에 영향을 미치지 않습니다.
진행 상태는 기본적으로 단자에 부착 될 때 기본적으로 표준 오류 스트림에보고됩니다. 이 플래그는 표준 오류 스트림이 터미널로 향하지 않더라도 진행 상태를 강요합니다.
프로토콜 버전 2를 사용하여 통신 할 때 주어진 문자열을 서버로 전송합니다. 주어진 문자열에는 NUL 또는 LF 문자를 포함해서는 안됩니다. 서버’알 수없는 서버 옵션을 포함한 서버 옵션 처리는 서버 별입니다. 다중-서버-옵션 =가 주어지면 명령 줄에 나열된 순서로 모두 상대방으로 전송됩니다.
클론이 완료된 후에는 헤드의 체크 아웃이 수행되지 않습니다.
소스 저장소가 얕은 저장소 인 경우 실패합니다. 그만큼 클론.거절 구성 변수를 사용하여 기본값을 지정할 수 있습니다.
을 만들다 없는 Git 저장소. 즉, 관리 파일을 작성하고 배치하는 대신 /.git, 자체를 $ git_dir로 만드십시오 . 이것은 작업 트리를 확인할 곳이 없기 때문에 분명히-no-Checkout을 의미합니다. 또한 리모컨의 지점 헤드는 해당 지역 브랜치 헤드에 직접 복사하여 Refs/Remotes/Origin에 매핑하지 않습니다 . 이 옵션을 사용하면 원격 트래킹 브랜치 나 관련 구성 변수가 생성되지 않습니다.
Toplevel 디렉토리의 파일 만 처음 존재하는 희소 확인을 사용하십시오. Git-Sparse-Checkout [1] 명령은 필요에 따라 작업 디렉토리를 성장시키는 데 사용될 수 있습니다.
부분 복제 기능을 사용하고 서버가 주어진 객체 필터에 따라 도달 가능한 객체의 서브 세트를 보내도록 요청합니다. -필터를 사용할 때, 제공된 것은 부분 클론 필터에 사용됩니다. 예를 들어, -filter = blob : none은 git에 의해 필요할 때까지 모든 blob (파일 내용)를 걸러냅니다. 또한 -filter = blob : limit = 적어도 크기의 모든 blob을 걸러냅니다 . 필터 사양에 대한 자세한 내용은 Git-Rev-List [1]의-필터 옵션을 참조하십시오.
또한 리포지토리의 하위 모듈에 부분 클론 필터를 적용하십시오. -필터 및-레커스-서브 모듈이 필요합니다 . 클론을 설정하여 기본적으로 켜질 수 있습니다.FilterSubModules 구성 옵션.
소스 저장소의 거울을 설정하십시오. 이것은 – -베어를 의미합니다 . -Bare,-Mirror와 비교하여 소스의 로컬 브랜치를 대상의 로컬 브랜치에 매핑 할뿐만 아니라 모든 심판 (원격 추적 지점, 메모 등 포함.) 및 대상 저장소의 GIT 원격 업데이트에 의해이 모든 심판을 덮어 쓸 수 있도록 RefSpec 구성을 설정합니다.
상류 저장소를 추적하기 위해 원격 이름 원점을 사용하는 대신 사용하십시오 . 클론을 무시합니다.config의 defaultremoteName입니다.
클로닝 된 저장소가 가리키는 새로 생성 된 헤드를 지적하는 대신’머리, 대신 분기를 가리 킵니다. 비금장 저장소에서 이것은 체크 아웃 할 분기입니다. –분기도 태그를 가져 와서 결과 저장소에서 해당 커밋의 헤드를 분리 할 수 있습니다.
주어진 경우, 클론으로가는 저장소가 SSH를 통해 액세스 할 때, 이것은 다른 쪽 끝에서 실행되지 않는 명령 경로를 지정합니다.
템플릿이 사용될 디렉토리를 지정하십시오. (git-init [1]의 “템플릿 디렉토리”섹션을 참조하십시오.))
새로 만들어진 저장소에서 구성 변수를 설정합니다. 이는 저장소가 초기화 된 직후에 적용되지만 원격 이력이 가져 오거나 파일이 체크 아웃되기 전에. 키는 git-config [1] (e.g., 핵심.EOL = true). 동일한 키에 대해 여러 값이 제공되면 각 값은 구성 파일에 기록됩니다. 예를 들어, 원격 원격에 페치 리프 스펙을 추가하는 데 안전하게 만듭니다.
현재 구현의 제한으로 인해 일부 구성 변수는 초기 페치 및 체크 아웃이 끝날 때까지 적용되지 않습니다. 적용되지 않는 것으로 알려진 구성 변수는 다음과 같습니다..거울과 원격..tagopt . 대신 해당-미러 및-무형 옵션을 사용하십시오.
a 얕은 지정된 커밋 수로 잘린 기록으로 복제. 암시–싱글 브랜치는 모든 지점의 팁 근처에서 역사를 가져 오기 위해 주어지지 않는 한. 서브 모듈을 얕게 복제하고 싶다면 전달–shallow-submodules .
지정된 시간 후에 역사와 얕은 클론을 만듭니다.
지정된 원격 브랜치 또는 태그에서 도달 할 수있는 커밋을 제외하고 히스토리와 함께 얕은 클론을 만듭니다. 이 옵션은 여러 번 지정할 수 있습니다.
클론 -브랜치 옵션 또는 기본 지점 원격으로 지정된 단일 지점 끝으로 이어지는 기록 만’S 헤드 포인트. 결과 저장소에 추가로 가져 오면 분기의 원격 추적 브랜치 만 업데이트됩니다.이 옵션은 초기 복제에 사용되었습니다. -싱글 브랜치 클론이 만들어 졌을 때 리모콘의 헤드가 지점을 가리키지 않으면 원격 트래킹 브랜치가 만들어지지 않습니다.
두목’t 태그를 복제하고 원격을 설정하십시오..tagopt =-구성에서 태그 없음, 미래의 git pull and git fech operations fin’t 태그를 따르십시오. 후속 명시 적 태그 페치는 여전히 작동합니다 (Git-Fetch [1] 참조).
-single 브랜치와 함께 사용하여 단일 복제 된 지점 이외의 참조가없는 분기를 복제하고 유지 관리 할 수 있습니다. 이것은 유용합니다. e.g. 검색 인덱싱을 위해 일부 저장소의 기본 분기의 최소 클론을 유지하려면.
–recurse-submodules [=]
클론이 생성 된 후 제공된 Pathspec을 기준으로 초기화 및 클론 서브 모듈. PathSpec이 제공되지 않으면 모든 서브 모듈이 초기화되고 복제됩니다. 이 옵션은 여러 항목으로 구성된 Pathspec의 경우 여러 번 주어질 수 있습니다. 결과 클론에는 서브 모듈이 있습니다.제공된 Pathspec에 활성화 또는 “.”PathSpec이 제공되지 않는 경우”(모든 서브 모듈을 의미).
서브 모듈은 기본 설정을 사용하여 초기화 및 클로닝됩니다. 이것은 클론이 완료된 직후 Git 하위 모듈 업데이트를 실행하는 것과 같습니다. 클로닝 된 저장소에 작업 트리/체크 아웃이없는 경우이 옵션은 무시됩니다 (i.이자형. -no -checkout / -n, – -bare 또는 -mirror가 제공되는 경우)
–[NO-] 얕은 서브 모듈
복제 된 모든 서브 모듈은 깊이 1으로 얕습니다.
복제 된 모든 서브 모듈은 하위 모듈의 상태를 사용합니다’s 슈퍼 프로젝트 대신 서브 모듈을 업데이트하기 위해 원격 트래킹 브랜치’S는 SHA-1을 기록했다. 통과와 동일합니다 -git 하위 모듈 업데이트에 대한 레코트 .
복제 된 저장소를 배치하는 대신, 클로닝 된 저장소를 지정된 디렉토리에 배치 한 다음 파일 시스템 공유 GIT 상징적 링크를 거기에 두십시오. 결과는 git 저장소를 작업 트리에서 분리 할 수 있습니다.
서브 모듈의 수는 동시에 가져 왔습니다. 하위 모듈에 대한 기본값.페치 조브 옵션.
(아마도 원격) 저장소에서 클론. 리포지토리 지정에 대한 자세한 내용은 아래 Git URL 섹션을 참조하십시오.
복제 할 새 디렉토리의 이름. 디렉토리가 명시 적으로 제공되지 않으면 소스 리포지토리의 “인간”부분이 사용됩니다 (/path/to/repo 용 Repo.호스트를위한 git 및 foo.xz : foo/.git). 기존 디렉토리로의 클로닝은 디렉토리가 비어있는 경우에만 허용됩니다.
리모컨에서 가져 오기 전에 주어진에서 번들을 가져 와서 데이터를 로컬 저장소로 풀지 않습니다. 번들의 심판은 숨겨진 심판/번들/* 네임 스페이스 아래에 저장됩니다. 이 옵션은–depth,–shallow-since 및-shallow-exclude와 호환되지 않습니다 .
git url
일반적으로 URL에는 전송 프로토콜, 원격 서버의 주소 및 저장소의 경로에 대한 정보가 포함되어 있습니다. .
GIT는 SSH, GIT, HTTP 및 HTTPS 프로토콜을 지원합니다 (또한 FTP 및 FTPS는 페치에 사용될 수 있지만 비효율적이고 더 이상 사용되지 않으며 사용하지 마십시오).
기본 운송 (i.이자형. git : // url) 인증이 없으며 무담보 네트워크에주의해서 사용해야합니다.
다음 구문은 다음과 함께 사용될 수 있습니다
- ssh : // [user@] host.xz [: 포트]/Path/to/Repo.git/
- git : // 호스트.xz [: 포트]/Path/to/Repo.git/
- http [s] : // 호스트.xz [: 포트]/Path/to/Repo.git/
- ftp [s] : // 호스트.xz [: 포트]/Path/to/Repo.git/
대체 SCP 유사 구문은 SSH 프로토콜과 함께 사용될 수 있습니다
- [user@] 호스트.XZ : Path/to/Repo.git/
이 구문은 첫 번째 결장 전에 슬래시가없는 경우에만 인식됩니다. 이것은 결장을 포함하는 로컬 경로를 차별화하는 데 도움이됩니다. 예를 들어 로컬 경로 Foo : Bar는 절대 경로 또는 ./foo : SSH URL로 잘못 해석되는 것을 피하기위한 바.
SSH 및 GIT 프로토콜은 ~ 사용자 이름 확장을 추가로 지원합니다
- ssh : // [user@] host.xz [: port]/~ [user]/path/to/repo.git/
- git : // 호스트.xz [: port]/~ [user]/path/to/repo.git/
- [user@] 호스트.xz :/~ [user]/path/to/repo.git/
기본적으로 GIT에 의해 지원되는 로컬 리포지토리의 경우 다음 구문이 사용될 수 있습니다
- /path/to/repo.git/
- 파일 : /// path/to/repo.git/
이 두 개의 구문은 전자를 암시하는 것을 제외하고는 대부분 동일합니다.
git 클론, git fetch 그리고 git 당기기, 하지만 git 푸시, 적절한 번들 파일도 허용합니다. git-bundle [1] 참조.
git가 할 때’특정 전송 프로토콜을 처리하는 방법을 알고 있으면 원격 헬퍼를 사용하려고 시도합니다. 원격 도우미를 명시 적으로 요청하려면 다음 구문이 사용될 수 있습니다
경로, 서버 및 경로, 또는 호출중인 특정 원격 도우미가 인식하는 임의의 URL과 같은 문자열 일 수 있습니다. 자세한 내용은 Gitremote-Helpers [7]를 참조하십시오.
비슷한 이름을 사용하는 원격 리포지토리가 많고 다른 형식을 사용하려면 (사용하는 URL이 작동하는 URL에 다시 작성되도록) 양식의 구성 섹션을 만들 수 있습니다
[url “”] 대신 =
예를 들어, 이것으로 :
[url "git : // git.주인.xz/"] 대신 호스트.xz :/path/to/signalof = Work :
“Work : Repo와 같은 URL.git “또는 좋아요”호스트.xz :/path/to/repo.git “은 URL이”git : // git로 사용하는 모든 컨텍스트에서 다시 작성됩니다.주인.XZ/Repo.git “.
푸시에 대해서만 URL을 다시 작성하려면 양식의 구성 섹션을 만들 수 있습니다
[url “”] pushinsteadof =
예를 들어, 이것으로 :
[url "ssh : // 예제.org/"] pushinsteadof = git : // 예.org/
“git : // 예제와 같은 URL.org/path/to/repo.git “은”ssh : // exames로 다시 작성됩니다.org/path/to/repo.git “푸시를 위해”그러나 풀은 원래 URL을 사용합니다.
예
- 상류에서 클론 :
$ git 클론 git : // git.핵심.org/pub/scm/. /리눅스.git my-linux $ cd my-linux $ make
$ git 클론 -l -s -n . ../복사 $ cd ../복사 $ git show-branch
$ git clone -reference /git /linux.git \ git : // git.핵심.org/pub/scm/. /리눅스.git \ my-linux $ cd my-linux
$ git clone -BARE -L/HOME/PROJ/.git/pub/scm/proj.git
구성
이 섹션 의이 줄 아래의 모든 것은 Git-Config [1] 문서에서 선택적으로 포함됩니다. 내용은 무엇과 동일합니다’거기에서 발견 :
이니.템플릿
템플릿이 복사 될 디렉토리를 지정하십시오. (git-init [1]의 “템플릿 디렉토리”섹션을 참조하십시오.))
기본 분기 이름을 재정의 할 수 있습니다. e.g. 새 저장소를 초기화 할 때.
저장소를 복제 할 때 생성 할 리모컨 이름. 기본값으로 원산지로,-Origin 명령 줄 옵션을 Git-Clone에 전달하여 상환 될 수 있습니다 [1].
저장소를 복제하는 것을 거부하십시오. 저장소가 얕은 경우 리포지토리를 통과하여 재정의 할 수 있습니다. git-clone [1] 참조
부분 클론 필터가 제공되는 경우 (git-rev-list [1]의-필터 참조) 및-Recurse-Submodules를 사용하는 경우 필터를 서브 모듈에 적용하십시오.
git
git [1] 스위트의 일부
Git Clone Branch – 특정 지점을 복제하는 방법
볼 라지 아요데지
SVN 및 CVS와 같은 구형 중앙 집중식 버전 제어 시스템과 달리 GIT는 배포됩니다. 모든 개발자는 로컬 또는 원격으로 코드의 전체 기록과 제어를 가지고 있습니다. 또한 다른 위치에서 적합한 것으로 간주되므로 코드의 여러 부분에 액세스하거나 조작 할 수 있습니다.
Linus Torvalds (Linux 운영 체제 커널의 유명한 제작자)가 2005 년 Linux 커널 개발을 위해 Git을 만들었으므로 세계에서 가장 널리 사용되는 최신 버전 제어 시스템이되었습니다.
이 기사에서는 Git Clone 및 Git Branch Workflows를 소개하겠습니다. 귀하의 필요에 따라 특정 지점을 복제 할 수있는 방법을 보여 드리겠습니다. 의 시작하자! ?
전제 조건
- 터미널의 기본 지식
- 터미널에 명령을 입력하는 기능
- GIT 설치 (아직도 보여 드리겠습니다)
- GitHub 계정
- 당신의 얼굴에 미소 ?))
Git 및 Github에 대한 빠른 소개
git 소프트웨어 개발에서 프로젝트 변경 (코드)을 추적하도록 설계된 분산 버전 제어 시스템입니다. 개발자 간의 조정, 협업, 속도 및 효율성을 시행하기위한 것입니다.
github, 반면에 GIT를 사용한 버전 제어를위한 웹 기반 호스팅 서비스가 있습니다. GIT의 모든 분산 버전 제어 및 소스 코드 관리 기능을 제공 할뿐만 아니라 컴퓨터 코드에 더 많은 기능을 추가합니다.
Windows에 git을 설치하는 방법
Windows 설치 프로그램 용 최신 Git을 여기에서 다운로드하여 설치하십시오.
Linux에 Git을 설치하는 방법
Linux 배포판을 기반으로 한 명령은 다음과 같습니다
데비안 또는 우분투
sudo apt-get update sudo apt-get install git
페도라
Sudo DNF 설치 git
센토스
Sudo Yum 설치 git
아치 리눅스
Sudo Pacman -Sy git
젠투
Sudo Emerge -ask-Verbose dev-vcs/git
Mac에 git을 설치하는 방법
여기에서 Mac Installer 용 최신 GIT를 다운로드하여 설치하십시오.
또는이 명령을 입력 할 수 있습니다
양조 설치 git
이제 우리가 GIT를 설치 했으므로 튜토리얼로 넘어 갑시다.
git 클론 소개
GIT는 “저장소”에서 프로젝트를 관리하고 버전 할 수 있습니다. 이 저장소는 Github와 같은 버전 제어를위한 웹 기반 호스팅 서비스에 저장됩니다.
그런 다음이 저장소를 로컬 컴퓨터로 복제하고 모든 파일과 분기를 로컬로 가질 수 있습니다 (곧 분기에 대해 더 자세히 설명하겠습니다).
예를 들어, Freecodecamp의 저장소 저장소를 SSH와 같은 것으로 복제 할 수 있습니다
git 클론 [email protected] : freecodecamp/freecodecamp.git
git 브랜치 소개
프로젝트를 수행 할 때는 다른 기능이있을 수 있습니다. 그리고 여러 기고자 들이이 프로젝트와 그 기능을 수행 할 것입니다.
지점에서는 마스터 브랜치에 동일한 파일이있는 “놀이터”를 만들 수 있습니다. 이 지점을 사용하여 독립적 인 기능을 구축하고, 새로운 기능을 테스트하고, 수정을 만들고, 수정 사항을 작성하고, 문서를 작성하거나, 제작 코드를 깨거나 영향을주지 않고 아이디어를 시도 할 수 있습니다. 완료되면 지점을 프로덕션 마스터 브랜치로 병합합니다.
분기는 git의 핵심 개념으로 Github에서 하나의 프로젝트의 다른 버전의 워크 플로를 관리하는 데 사용됩니다. 마스터 브랜치는 항상 “생산 및 배포 가능한 코드”로 간주되는 저장소의 기본 브랜치입니다. Mas.
git 가지를 복제하는 방법
Git Clone 명령으로 리포지토리를 복제 할 수는 있지만, 이것은 지점과 원격 헤드를 클론합니다 . 이것은 일반적으로 기본적으로 마스터이며 저장소에 다른 모든 지점을 포함합니다.
그래서 저장소를 복제하면 마스터와 다른 모든 지점을 복제합니다. 이것은 당신이 다른 지점을 직접 체크 아웃해야한다는 것을 의미합니다.
프로젝트의 작업이 사용자 대시 보드에 암호없는 인증을 추가하기 위해 기능을 사용하는 것이라고 가정 해 봅시다. 이 기능은 암호가없는 부서 지점에 있습니다.
“피처 브랜치”가 마스터로 병합되므로 마스터 브랜치가 필요하지 않습니다. 그렇다면 어떻게 다른 모든 지점을 “필요하지 않은 파일”으로 가져 오지 않고이 암호가없는 지점을 어떻게 복제합니까??
이 샘플 리포지토리를 만들어이를 설명했습니다. 이 저장소에는 NextJS로 구축 된 간단한 블로그가 있으며 4 개의 더미 지점이 있습니다
- 주인
- 데브
- 각색
- 비밀번호가없는
Nextjs에서는 폴더 페이지/API 내부의 모든 파일이/API/* 경로에 매핑되며 페이지 대신 API 엔드 포인트로 처리됩니다 . 저장소에서 나는이 디렉토리에서 각 지점에 다른 더미 API를 만들었습니다.
마스터 브랜치는 파일을 보유합니다 페이지/API/안녕하세요.JS Passwordless-Auth는 파일을 보유합니다 페이지/API/인증.JS. 각 파일은 더미 텍스트 응답을 반환합니다. 여기에서 Master ‘s Hello API 응답을 참조하십시오 (특별한 메시지 포함 ?)).
저장소를 복제하자 :
git 클론 [email protected]
이를 통해이 저장소의 모든 지점에 액세스 할 수 있으며 각 버전과 파일을 볼 수 있습니다.
git branch -a
어디에 있는지 궁금합니다 리모컨/원산지/.. 지점이 나왔습니다?
저장소를 복제하면 인터넷의 저장소 또는로 알려진 내부 서버에서 데이터를 가져옵니다 원격. 원산지라는 단어는 원격 URL을 대체하기 위해 GIT가 작성한 별칭입니다 (원하는 경우 다른 별칭을 변경하거나 지정할 수 있음).
이것들 리모컨/원산지/.. Branches는 인터넷에서 클로닝 한 원산지 저장소로 돌아가서 원산지에서 풀/푸시를 수행 할 수 있습니다.
따라서 머신에 마스터를 복제하면 리모컨/원산지/마스터는 인터넷의 원래 마스터 브랜치이며 마스터는 로컬 컴퓨터에 있습니다. 따라서 리모컨/원산지/마스터에서 당기기/밀어 넣을 것입니다 .
요약하자면 원격 인터넷의 저장소를 가리키는 URL입니다 기원 이 원격 URL의 별칭입니다.
특정 지점을 복제하는 방법
이제 데모 저장소에서 특정 지점을 복제 해 봅시다. 특정 지점을 복제하는 두 가지 방법이 있습니다. 당신은 둘 중 하나를 할 수 있습니다 :
- 저장소를 복제하고 모든 지점을 가져오고 즉시 특정 지점으로 체크 아웃하십시오.
- 저장소를 복제하고 단일 분기 만 가져 오십시오.
옵션 1
git 클론 -브랜치
옵션 2
git 클론-브랜치--싱글 브랜치
CD 페이지/API를 실행하면 인증을 찾을 수 있습니다.이전 설정에서 예상되는대로 Passwordless-Auth 브랜치의 JS 파일.
결론
인터넷이나 저장 공간이 부족할 수 있지만 특정 지점에서 작업을 수행해야합니다. 또는 여러 가지 이유로 제한된 파일로 특정 지점을 복제 할 수 있습니다. 다행히도 Git은이를 수행 할 수있는 유연성을 제공합니다. 근육을 구부리고 시험해보십시오.
한 번에 하나, 그래? ✌?
git 클론은 모든 가지를 클론합니다
Git Clone 명령은 저장소 내에서 특정 저장소 또는 분기의 사본을 만드는 데 사용됩니다.
GIT는 분산 버전 제어 시스템입니다. 복제하여 자신의 기계에서 전체 저장소의 장점을 최대화하십시오.
git 클론은 무엇을합니까??
git 클론 https : // github.com/github/training-kit.git
저장소를 복제하면 다른 중앙 집중식 버전 제어 시스템에서와 같이 하나의 파일을 얻지 못합니다. git로 복제하면 전체 저장소를 얻습니다. 모든 파일, 모든 분기 및 모든 커밋.
저장소 복제는 일반적으로 프로젝트와의 상호 작용이 시작될 때 한 번만 수행됩니다. Github에서와 같이 리모콘에 이미 리포지토리가 이미 존재하면 그 리포지토리를 복제하여 로컬로 상호 작용할 수 있습니다. 저장소를 복제 한 후에는 정기적으로 개발하기 위해 다시 복제 할 필요가 없습니다.
전체 저장소와 함께 일할 수 있다는 것은 모든 개발자가 더 자유롭게 작동 할 수 있음을 의미합니다. 작업 할 수있는 파일에 제한이 없으면 기능 지점에서 작업하여 안전하게 변경할 수 있습니다. 그런 다음 할 수 있습니다
- 나중에 Git Push를 사용하여 원격 저장소와 지점을 공유하십시오
- 풀 요청을 열어 공동 작업자와 변경 사항을 비교하십시오
- 지점에서 필요에 따라 테스트하고 배포하십시오
- 메인 브랜치로 병합하십시오.
git 클론을 사용하는 방법
git 클론에 대한 일반적인 사용 및 옵션
- git clone [url] : 클론 (다운로드) 모든 파일, 분기 및 커밋을 포함하여 Github에 이미 존재하는 저장소.
- Git Clone -Mirror : 저장소를 복제하지만 파일을 편집 할 수있는 기능없이. 여기에는 심판 또는 가지가 포함됩니다. 별도의 리모콘에 저장소의 보조 사본을 만들려고하고 모든 지점을 일치시키려는 경우이를 사용하고 싶을 수도 있습니다. GIT 호스팅 용 새 리모컨을 사용하여 구성하거나 자동 테스트 중에 GIT를 사용할 때 발생할 수 있습니다.
- git 클론-싱글 브랜치 : 한 번만 복제합니다
- git clone –sparse : 현재 커밋의 모든 파일로 작업 디렉토리를 채우는 대신 재귀 적으로 커밋하는 대신 루트 디렉토리에있는 파일 만 채 웁니다. 이것은 많은 디렉토리 및 하위 다이렉터로 대규모 리포지토리를 복제 할 때 성능에 도움이 될 수 있습니다.
- `git 클론-레커스-서브 모듈 [=
GIT-SCM의 문서에서 GIT 클론이 포함 된 많은 옵션을 모두 볼 수 있습니다.
git 클론의 예
복제의 가장 일반적인 사용법은 단순히 저장소를 복제하는 것입니다. 이것은 프로젝트 작업을 시작할 때 한 번만 이루어지며 Git Clone [URL]의 구문을 따릅니다 .
git은 지점을 복제합니다
Git Clone-Single-Branch : 기본적으로 Git Clone은 클로닝되고있는 리모컨에 현재 존재하는 모든 지점에 대한 원격 추적 브랜치를 생성합니다. 생성 된 유일한 로컬 브랜치는 기본 지점입니다.
오직 하나의 특정 지점에 대한 원격 추적 브랜치를 받거나 하나의 지점을 복제하십시오 그렇지 않습니다 기본 분기. 이 두 가지 일은 당신이 사용할 때 발생합니다–git 클론과 함께 single 브랜치 .
이것은 현재의 역사 라인에 포함 된 커밋 만 포함 된 클론을 만듭니다. 이것은 다른 지점이 복제되지 않을 것임을 의미합니다. 클론에 특정 분기를 지정할 수 있지만 기본 분기는 일반적으로 기본적으로 기본적으로 선택됩니다.
하나의 특정 지점을 복제하려면 다음을 사용하십시오
git clone [url] –branch [branch]–single branch
하나의 분기 만 복제하면 저장소가 매우 크고 저장소의 성능을 늦추는 이진 파일이 포함되어 있지 않는 한 하나의 분기 만 추가하지 않습니다. 권장 솔루션은 단일 지점 복제 전략에 의존하기 전에 저장소 성능을 최적화하는 것입니다.
SSH와의 git 클론
원격 서버로 인증하는 방법에 따라 SSH를 사용하여 복제하도록 선택할 수 있습니다.
SSH로 복제하기로 선택한 경우 URL 대신 저장소에 특정 SSH 경로를 사용합니다. 일반적으로 개발자는 기계 수준에서 SSH로 인증됩니다. 이것은 아마도 당신이 아마도 HTTPS 또는 SSH로 복제 할 것임을 의미합니다. 저장소에 모두 혼합되어 있지 않습니다.
- Git Branch : 이것은 로컬 저장소의 기존 지점을 보여줍니다. Git Branch [Banch-Name]을 사용하여 현재 위치에서 지점을 만들거나 Git Branch (모든 분기), 시스템의 로컬 제품, 마지막 Git Pull 또는 Git Fetch에서 저장된 원격 추적 브랜치를 볼 수 있습니다.
- Git Pull : Github의 해당 원격 브랜치의 모든 새로운 커밋으로 현재 로컬 작업 브랜치를 업데이트합니다. git pull은 git fetch와 git merge의 조합입니다 .
- git 푸시 : 모든 로컬 브랜치 커밋을 리모콘으로 업로드합니다.
- git remote -v : 관련 원격 저장소와 원산지와 같은 저장된 이름을 표시 .
Git과 Github로 시작하십시오
코드 검토, 프로젝트 관리 및 4 천만 명의 개발자와 함께 소프트웨어 구축.
GIT : 특정 지점을 복제하십시오
기본적으로 Git 저장소를 클로닝하면 로컬 시스템에서 전체 원격 저장소의 사본을 만듭니다. 그러나 경우에 따라 git 저장소가 방대 할 수 있으며 작업을 위해 모든 지점이 필요하지 않을 수 있습니다.
때로는 특정 지점 만 복제하여 다른 파일에 영향을주지 않고 해당 지점에서 작업 할 수 있습니다. 기능에서 작업 할 때 또는 해당 지점에만 존재하는 버그를 수정할 때 특정 지점 만 복제하는 것이 유용합니다.
이 튜토리얼에서는 특정 git 지점을 복제하는 법을 배웁니다.
- GIT 설치 (Ubuntu, MacOS, Windows, Centos 7 또는 Centos 8에 Git을 설치하는 방법 참조).
- git 저장소.
클론 특정 git 지점
git 지점을 복제하는 데 사용되는 명령은 다음과 같습니다 git 클론 . 그러나, 그 git 클론 명령은 모든 지점과 리모컨을 클론합니다 머리 (보통 주인 / 기본 나뭇가지).
단일 git 브랜치를 git 클론 :
- 방법 1. 전체 저장소를 복제하고 모든 지점을 가져오고 클로닝 과정 후 지정된 지점을 확인하십시오.
- 방법 2. 특정 지점 만 복제하고 다른 지점이 없습니다.
아래 섹션은 두 가지 방법을 모두 설명하여 선호도에 사용할 수 있습니다.
방법 1- 모든 지점을 가져와 결제 1을 가져옵니다
이 방법을 사용하여 저장소에서 모든 분기를 가져온 다음 하나의 분기를 확인하십시오. 지정된 분기는 git 푸시 및 git 풀에 대한 구성된 로컬 브랜치가됩니다. 그러나 명령은 여전히 저장소의 모든 분기에서 모든 파일을 가져옵니다.
다음 구문을 사용하여 원격 저장소에서 모든 분기를 가져와 지정된 것에게 확인하십시오
git 클론-브랜치 [branch_name] [원격 url]
메모: 변수를 교체하십시오 [지점명] 그리고 [원격 url] 올바른 지점 이름과 원격 URL.
위의 예에서, 우리는 지정된 저장소에서 모든 지점을 가져 와서 새로운 기능 나뭇가지. 리포지토리가 포함 된 디렉토리로 디렉토리를 변경 한 후 기본 브랜치는 다음과 같습니다 새로운 기능 , ~ 아니다 주인 .
방법 2- 단일 브랜치에서만 파일을 가져 오십시오
두 번째 방법을 사용하면 지정된 분기에서 파일 만 가져올 수 있으며 다른 것은 없습니다. 이렇게하면 하드 드라이브의 많은 공간이 절약되고 다운로드 크기가 줄어 듭니다. 일부 리포지토리가 매우 클 수 있으므로이 방법은 특정 지점에서만 작업 해야하는 경우 대역폭 사용을 줄입니다.
메모: 단일 지점 만 가져 오려면 git 버전 1.7.10 이상이 필요합니다.
Git Clone -Branch [Branch_Name]-Single-Branch [Remote-url]
명령은 지정된 분기를 가져오고 다른 지점이나 파일을 가져 오지 않고 해당 지점에 포함 된 파일 만 복사합니다. 달리기 git 지점 어떤 지점이 복사되었는지 보여줍니다.
이 튜토리얼은 GIT 저장소에서 단일 지점을 가져 오는 방법을 보여주었습니다. 옵션은 전체 저장소를 다운로드하지 않으려고하거나 단일 기능에서만 작업하고 싶을 때 유용합니다.
더 많은 GIT 튜토리얼은 Git 초보자 안내서, GIT 태그 자습서 또는 GIT 하위 모듈 가이드를 참조하십시오.
이 글이 도움 되었나요?
보스코 마리잔
Bosko는 첨단 기술에 대한 평생 열정과 함께 교육자 및 콘텐츠 작가로 일하면서 복잡한 개념을 단순화하고 사용자 친화적으로 만들기 위해 노력합니다. 그로 인해 피닉스 나프 (Phoenixnap)에서 기술적 인 글을 썼는데, 그곳에서 그는 지식을 전파하는 사명을 계속합니다.
다음으로 읽어야합니다
2023 년 3 월 22 일
이 튜토리얼은 Git의 다른 지점으로 마스터 브랜치를 병합하는 두 가지 방법을 보여줍니다. 예제 및 사용 사례를 참조하십시오.
2022 년 9 월 28 일
git submodule init 명령은 로컬 git 구성 파일에 하위 모듈 항목을 추가합니다. 이 튜토리얼은 일반적인 사용 예제와 함께 git 하위 모듈 init를 사용하는 방법을 보여줍니다.
2023 년 3 월 16 일
git의 지점은 저장소의 독립적 인 개발 라인입니다. 이 튜토리얼은 원격 저장소에서 모든 지점을 git의 로컬 리포지토리로 끌어 당기는 방법을 보여줍니다.
2023 년 2 월 21 일
이 기사는 SSH와 HTTPS를 선택하는 것에 대한 조언을 제공합니다.