답변:
다음을 수행 할 수 있습니다 (배포 된 저장소에서).
git fetch
// git fetch will download all the recent changes, but it will not put it in your current checked out code (working area).
뒤에 :
git checkout origin/master -- path/to/file
// git checkout <local repo name (default is origin)>/<branch name> -- path/to/file will checkout the particular file from the downloaded changes (origin/master).
<revision>
합니까? 파일 이름? 내 파일이 루트 디렉토리에 있으면 다음을 입력해야 함을 의미합니다. git checkout -m index.php index.php
?
*origin*/master
원격 이어야합니까, 아니면 원격으로부터 가능합니까? 전체 히스토리가 내 저장소로 가져 왔나요? 아니면 파일이 마술처럼 보이나요?
이것이 해결책이 될 수 있습니다.
git fetch
git checkout origin/master -- FolderPathName/fileName
감사.
이 시나리오는 로컬 리포지토리에서 파일 을 엉망으로 만들고 리포지토리에서 최신 버전의 새 복사본을 복원하려고 할 때 발생합니다. 간단히 / 빈 / RM (자식하지 RM)으로 파일을 삭제하거나 숨기기 / 이름을 변경 한 후 발급 git pull
하지 않습니다 일 : 자식이 파일의 부재를 통지하고 아마합니다 (REPO에서 사라 원하는 가정 git diff
의 모든 행이 삭제 표시됩니다 누락 된 파일).
git pull
로컬에서 누락 된 파일을 복원하지 않는 것은 아마도 다른 버전 제어 시스템 (예 : 로컬에 숨겨진 파일을 복원 할 것이라고 생각하는 svn 업데이트)의 영향을 받았기 때문에 git에 대해 항상 실망 스러웠습니다 .
git reset --hard HEAD
커밋되지 않은 변경 사항을 제거하므로 관심있는 파일을 복원하는 다른 방법입니다. 그러나 여기 에서 언급했듯이 git reset은 다른 커밋되지 않은 변경 사항이있는 경우 잠재적으로 위험한 명령입니다.
git fetch ... git checkout
@chrismillah에 의해 위에서 언급 전략은 문제의 파일을 복원 할 수있는 좋은 수술 방법입니다.
나는 약간 다른 작업을 찾고 있었지만 이것은 당신이 원하는 것처럼 보입니다.
git archive --remote=$REPO_URL HEAD:$DIR_NAME -- $FILE_NAME |
tar xO > /where/you/want/to/have.it
난 당신이 가져하려는 경우, 의미 path/to/file.xz
, 당신은 설정됩니다 DIR_NAME
에 path/to
와 FILE_NAME
로 file.xz
. 그래서, 당신은 다음과 같이 끝날 것입니다.
git archive --remote=$REPO_URL HEAD:path/to -- file.xz |
tar xO > /where/you/want/to/have.it
그리고 물론 아무도 당신을 다른 형태의 포장 풀기에서 지키지 않습니다 tar xO
(여기에 파이프가 필요한 사람은 나였습니다.
다음을 사용해보십시오.
git checkout branchName -- fileName
전의:
git checkout master -- index.php
https://raw.githubusercontent.com/[USER-NAME]/[REPOSITORY-NAME]/[BRANCH-NAME]/[FILE-PATH]
전의. https://raw.githubusercontent.com/vipinbihari/apana-result/master/index.php
이를 통해 개별 파일의 내용을 행 텍스트로 얻을 수 있습니다. wget으로 해당 텍스트를 다운로드 할 수 있습니다.
전의. https://raw.githubusercontent.com/vipinbihari/apana-result/master/index.php
이 Windows 배치는 GitHub에 있는지 여부에 관계없이 작동합니다. 나는 그것을 사용하고 있습니다. 작업이 느리고 수백 메가 바이트의 데이터를 순회한다는 것을 알 수 있으므로 요구 사항이 사용 가능한 대역폭 / RW 메모리를 기반으로하는 경우이 방법을 사용하지 마십시오.
sparse_checkout.bat
pushd "%~dp0"
if not exist .\ms-server-essentials-docs mkdir .\ms-server-essentials-docs
pushd .\ms-server-essentials-docs
git init
git remote add origin -f https://github.com/MicrosoftDocs/windowsserverdocs.git
git config core.sparseCheckout true
(echo EssentialsDocs)>>.git\info\sparse-checkout
git pull origin master
=>
C : \ Users \ 사용자 이름 \ Desktop> sparse_checkout.bat
C : \ Users \ 사용자 이름 \ Desktop> pushd "C : \ Users \ 사용자 이름 \ Desktop \"
C : \ Users \ user name \ Desktop> 존재하지 않는 경우. \ ms-server-essentials-docs mkdir. \ ms-server-essentials-docs
C : \ Users \ 사용자 이름 \ Desktop> pushd. \ ms-server-essentials-docs
C : \ Users \ user name \ Desktop \ ms-server-essentials-docs> git init C : / Users / user name / Desktop / ms-server-essentials-docs / .git /에서 빈 Git 리포지토리를 초기화했습니다.
C : \ Users \ user name \ Desktop \ ms-server-essentials-docs> git remote add origin -f https://github.com/MicrosoftDocs/windowsserverdocs.git Update origin remote : Enumerating objects : 97, done. 원격 : 개체 계수 : 100 % (97/97), 완료. 원격 : 개체 압축 : 100 % (44/44), 완료. 원격 : 총 145517 (델타 63), 재 사용됨 76 (델타 53), 팩 재 사용됨 145420 개체 수신 : 100 % (145517/145517), 751.33 MiB | 32.06 MiB / s, 완료. 델타 해결 : 100 % (102110/102110), 완료. 에서 https://github.com/MicrosoftDocs/windowsserverdocs * [새로운 지점]
1106 - 충돌 -> 원 / 1106-충돌 * [새로운 지점]
FromPrivateRepo -> 원 / FromPrivateRepo * [새로운 지점]
PR183 -> 원 / PR183 * [새 지점]
충돌 수정-> 오리진 / 충돌 수정 * [새 브랜치]
eross-msft-patch-1-> 오리진 / eross-msft-patch-1 * [새 브랜치]
마스터-> 오리진 / 마스터 * [새 브랜치] 패치 -1-
> origin / patch-1 * [새 브랜치] repo_sync_working_branch-> origin / repo_sync_working_branch * [새 브랜치]
shortpatti-patch-1-> origin / shortpatti-patch-1 * [새 브랜치]
shortpatti-patch-2-> origin / shortpatti -patch-2 * [새 브랜치]
shortpatti-patch-3-> origin / shortpatti-patch-3 * [새 브랜치]
shortpatti-patch-4-> origin / shortpatti-patch-4 * [새 브랜치]
shortpatti-patch -5-> origin / shortpatti-patch-5 * [새 브랜치]
shortpatti-patch-6-> origin / shortpatti-patch-6 * [새 브랜치]
shortpatti-patch-7-> origin / shortpatti-patch-7 * [새 브랜치]
shortpatti-patch-8-> origin / shortpatti-patch-8C : \ Users \ 사용자 이름 \ Desktop \ ms-server-essentials-docs> git config core.sparseCheckout true
C : \ Users \ 사용자 이름 \ Desktop \ ms-server-essentials-docs> (echo EssentialsDocs) 1 >>. git \ info \ sparse-checkout
C : \ Users \ user name \ Desktop \ ms-server-essentials-docs> git pull origin master
From https://github.com/MicrosoftDocs/windowsserverdocs
* branch master-> FETCH_HEAD