시나리오 :
- 나는 로컬 하나의 파일에 약간 수정을 실행
git add
,git commit
그리고git push
- 파일이 원격 오리진 마스터 저장소로 푸시됩니다.
- 원격 저장소의 “remote_cache”메소드를 사용하여 Capistrano를 통해 배치 된 다른 로컬 저장소가 있습니다.
- 이제 전체 응용 프로그램을 배포하고 싶지 않고 단일 파일을 업데이트 / 체크 아웃합니다.
git에서 어떻게 든 가능합니까? 나는 효과가 있거나 알아낼 수없는 것을 찾을 수 없었습니다. SVN으로 방금 수행했습니다 svn up file
.
답변
배포 된 저장소에서 수행 할 수 있습니다.
git fetch
git checkout origin/master -- path/to/file
가져 오기는 모든 최근 변경 사항을 다운로드하지만 현재 체크 아웃 된 코드 (작업 영역)에는 적용되지 않습니다.
체크 아웃하면 다운로드 한 변경 사항 ( origin/master
) 에서 특정 파일로 작업 트리가 업데이트됩니다 .
적어도 이것은 작은 작은 오타 수정에 대해 효과적입니다. 파일에서 하나의 단어를 변경하는 것만으로 분기를 만드는 것이 이상하게 느껴집니다.
답변
다음 코드가 나를 위해 일했습니다.
git fetch
git checkout <branch from which file needs to be fetched> <filepath>
답변
git archive --format=zip --remote=ssh://<user>@<host>/repos/<repo name> <tag or HEAD> <filename> > <output file name>.zip
답변
Git 2.23 (2019 년 8 월) 및 새로운 (여전히 실험적인) 명령을 사용 git restore
하면 ” 스테이징 영역이 아닌 작업 디렉토리에서 모든 파일을 재설정하는 방법은 무엇입니까? “에 나와 있습니다.
git fetch
git restore -s origin/master -- path/to/file
아이디어는 git restore
파일 과 브랜치가 아닌 파일 만 처리합니다 git checkout
.
” 혼란스러워git checkout
“: 참조 git switch
)
필자의 경우 나는 업스트림에서 데이터 를 가져 오고 싶었다 .
그래서 방금 변경했습니다 :git restore -s upstream/master -- path/to/file
답변
당신이 할 수있는 일은 :
-
로컬 git repo를 업데이트하십시오.
git fetch
-
로컬 브랜치를 빌드하고 체크 아웃하십시오.
git branch pouet && git checkout pouet
-
이 브랜치에서 원하는 커밋을 적용하십시오.
git cherry-pick abcdefabcdef
(abcdefabcdef는 적용하려는 커밋의 sha1입니다)
답변
또는 현재 브랜치에서 git stash (변경 사항이있는 경우), checkout master, 최신 변경 사항을 가져 와서 해당 파일을 데스크탑 (또는 전체 앱)으로 가져갑니다. 당신이 있던 지점을 확인하십시오. 힘내 숨김은 원래 상태로 다시 적용한 다음 변경 사항을 수동으로 수정하거나 파일을 바꾸어 끕니다.
이 방법은 멋진 sooooo가 아니지만 여러분이 다른 것을 알아낼 수 없다면 데프가 작동합니다.
답변
나는 쉽게 해킹을 발견했다고 생각합니다.
로컬 저장소에있는 파일 (원격 서버의 최신 커밋에서 업데이트 할 파일)을 삭제하십시오.
그런 다음 git pull
파일이 삭제되었으므로 충돌이 없습니다.