[git] Git의 서버 저장소에서 단일 파일을 가져 오는 방법은 무엇입니까?

Git을 실행하는 서버가있는 사이트에서 작업 중입니다. 배포를 위해 Git을 사용하고 있습니다 (GitHub가 아님). 이것은 후크 방법을 사용하여 참여하기 전에 설정 되었으며이 질문을 참조하고 아래 명령을 입력했지만 작동하지 않았습니다.

서버에서 단일 파일을 어떻게 가져 옵니까? 예를 들어, 내 로컬 파일 index.php를 업데이트하고 싶다면? git pull index.php?



답변

다음을 수행 할 수 있습니다 (배포 된 저장소에서).

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).


답변

git fetch --all
git checkout origin/master -- <your_file_path>
git add <your_file_path>
git commit -m "<your_file_name> updated"

이것은 원본 / 마스터에서 파일을 가져오고 있다고 가정합니다.


답변

이것이 해결책이 될 수 있습니다.

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_NAMEpath/toFILE_NAMEfile.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