2009-09-30 5 views

답변

4

힘내는 하나의 파일을 검색하는 개념이 없습니다. 항상 네트워크를 통해 커밋을 이동합니다.

일부 원격 저장소의 git clone을 완료하면 git checkout remotename/branch을 사용하여 작업 복사본에서 해당 분기의 최신 파일 버전을 체크 아웃 할 수 있습니다. 로컬 브랜치를 수정하려면 git checkout -b <yourbranchname> remotename/branch을 사용해야합니다. 이것은 더 나은

git branch --track mybranchname remotename/branchname 
git checkout mybranchname 

으로 수행 될 수있다 그래서 해당 지역의 지점 것이다 "트랙"원격 지점, 그리고 밀고 그 지점에서 당겨 기본적.

15

먼저 메모 : 원격 저장소에 둘 이상의 분기가있을 수 있습니다. 또한 HEAD는 현재 분기를 체크 아웃하고 (원격 개발 브랜치 (심볼 참조)) remote/HEAD은 원격에서 디폴트 브랜치를 의미합니다. '가지의 머리'와 같은 것은 없습니다. HEAD는 분기 (또는 때로는 커밋)에 대한 포인터입니다.

두 번째로 Git은 트리 전체 (저장소의 모든 파일)에서 작동합니다 (Novelocrat wrote). Git에서는 브랜치를 체크 아웃한다. (어떤 브랜치에서부터 작업 디렉토리에 이르기까지 파일 버전을 체크 아웃 할 수 있지만 common 작업은 적다.)


Git에서는 일부 로컬 분기 맨 위에 만 새로운 커밋을 만들 수 있습니다. 원격 저장소 브랜치를 따르기 때문에 원격 추적 브랜치에 직접 커밋을 생성 할 수는 없으며 가져 오기 작업을 잃을 수도 있습니다.

따라서 간단한 "git checkout origin"바로 가기는 통상 "git checkout origin/HEAD"을위한 인 (즉 리모컨 origin라고 가정)는 "git checkout origin/master은"이렇게 분리라는 이름 분기로 원격 추적 분기의 상태를 체크 아웃 할 머리. 원격 추적 분기 상태를보고 /보고 싶은 경우에이 방법이 좋습니다.

당신이 사용하는 경우

" git checkout --track origin/master" 추적 (트랙) 원격 추적 브랜치 origin/master에 의미 현지 지점 master을 만들 것입니다. git-clone은 원격 origin (보통 origin/master)의 기본 분기 ( origin/HEAD)에 대해 로컬 브랜치 (보통 master)를 자동으로 설정하므로이 작업을 수행하지 않아도됩니다. 그런 다음 지점 master에서 간단한 " git pull"을 가져오고 (필요한 경우) 가져오고 원격 저장소의 해당 분기에있는 변경 사항과 로컬 변경 사항을 병합하려고합니다. 리모컨에 변경 사항이 없으면 "최신"상태이고 로컬 지사는 변경되지 않습니다. 로컬 브랜치에 변경 사항이 없지만 원격 브랜치에있는 경우 로컬 브랜치는 단순히 "빨리 감기"라는 원격 추적 브랜치의 상태로 진행됩니다. 여기서는 " git pull"을 " svn update"과 매우 비슷하게 생각할 수 있습니다.

로컬 지점을 으로 원격 이동 지점의 상태로 되감기를 "git reset --hard origin"으로 강제 설정할 수도 있습니다.--hard은 강제로 작업 디렉토리를 덮어 쓰는 것을 의미하므로, 변경되지 않은 변경 사항은 손실됩니다! 조심해서 사용하십시오.

마지막으로 원격 추적 지점에서 단일 파일을 체크 아웃하려는 경우 (즉, 원격 추적 분기에있는 파일의 작업 디렉토리 버전을 사용하는 경우) 'pathspec'형식을 사용하면됩니다. git-checkout, 즉 "git checkout origin -- file"입니다. 원격 추적 지점에서 파일이 어떻게 보이는지 알고 싶다면 "git show origin:path/to/file"을 사용하십시오.

HTH

관련 문제