[unix] 자식을 사용하여 특정 분기를 가져옵니다

Xilinx wiki에 설명 된대로 git을 사용하여 마스터 다음 지점 에서 소스 코드를 다운로드하고 싶습니다 .

나는 이것을 시도했다 :

#git clone git://github.com/Xilinx/u-boot-xlnx/tree/master-next.git

Initialized empty Git repository in /home/Hannan/master-next/.git/
fatal: remote error:
Xilinx/u-boot-xlnx/tree/master-next is not a valid repository name
Email support@github.com for help

이조 차도 실패했습니다.

# git clone git://github.com/Xilinx/tree/master-next/u-boot-xlnx.git
Initialized empty Git repository in /home/Hannan/u-boot-xlnx/.git/
fatal: remote error:
Xilinx/tree/master-next/u-boot-xlnx is not a valid repository name
Email support@github.com for help

작동하는 명령은 다음과 같습니다.

 git clone git://github.com/Xilinx/u-boot-xlnx.git

그러나 이것이 마스터 분기가 아닌 마스터 다음 분기를 실제로 가져올 것이라는 것을 어떻게 알 수 있습니까? git을 사용하여 특정 브랜치를 올바르게 가져 오는 방법은 무엇입니까?

PuTTY를 통해 액세스 한 RHEL 6을 사용하고 있습니다.



답변

오류 메시지에서 알 수 git clone있듯이 git 저장소가 필요합니다. 그런 경로에서 분기 이름을 “추가”할 수 없습니다. git의 분기를 참조하십시오 .

단일 브랜치를 복제 할 수 있습니다 (그리고 그 역사) :
git clone <url> --branch <branch> --single-branch

참조하십시오 git help clone.

그러나 당신이 실행 한 clone 명령은 당신에게 전체 저장소의 사본을했다, 당신은 기존의 지사 볼 수 git branch와 그들에 대해 더 많은 정보를 git show-branch.

로 원하는 지점으로 전환하십시오 git checkout branch-name.

Pro Git 책 의 첫 번째 장 (온라인에서 사용 가능)은 기본 명령에 대한 자세한 내용을 제공합니다.


답변

이 명령은 작동해야합니다.

$ git fetch origin [branch]

위의 명령은 원격 저장소에서 메타 데이터 만 가져오고 소스를 병합하지 않습니다.

소스를 가져오고 병합하려는 경우 명령은 다음과 같습니다.

$ git pull origin [branch]

merge 명령을 실행하는 분기에주의하십시오. 소스가 병합되는 위치입니다.


답변

자식 리포지토리에는 모든 브랜치가 포함되어 있습니다 (그러나 압축되어 차이가 있으므로 크기 문제는 거의 없습니다).

따라서 성공적으로 완료 한 전체 프로젝트를 복제 할 수 있습니다. 이것은 하나의 지점에만 관심이있는 경우에도 저장소를 얻는 표준 방법입니다.

그런 다음 .git 구조에는 해당 저장소에서 수행 된 모든 분기가 포함됩니다 .

특정 브랜치를 사용하려면 git checkout [branch_name]
브랜치가 존재하면 파일을 로컬에서 사용할 수있게됩니다 (프로젝트 디렉토리의 현재 파일과 마찬가지로).

git status 그런 다음 현재 분기 인 분기를 표시합니다. 예를 들면 다음과 같습니다.

Leiaz에 따르면 특정 분기를 복제 할 수 있습니다. 실제로 나는 이것을 한 적이 없거나 다른 사람들이 그것을 사용하는 것을 보았습니다. 더 많은 연구에서, 그것은 git 1.7.10 (2012 년 4 월)에 추가 된 비교적 새로운 것입니다 : 복제를 단일 지점으로 제한하는 ‘git clone learn –single-branch’옵션 (서프라이즈!); 분기 히스토리를 가리 키지 않는 태그는 페치되지 않습니다. 예를 들면 다음과 같습니다.

git clone -b master-next --single-branch git://github.com/Xilinx/

여기에 이미지 설명을 입력하십시오
내 “링커”응용 프로그램에 대해 지점을 확인하고 있습니다. v3.0.10


답변