git에서 주어진 커밋 또는 일련의 커밋에서 변경된 파일 만 내보내거나 보관하는 간단한 방법이 있습니까? 나는 이것을하기위한 명확한 지시를 찾을 수없는 것 같다. (그리고 나는 Linux/Git에 처음이다.)Git에서 변경된 파일 만 내보내기/보관
저는 msysgit을 사용하고 있으며 대부분 전체 저장소를 배포하는 것이 좋습니다. 그러나 많은 경우 작은 파일을 한 번에 몇 개의 파일로 배포하는 것이 훨씬 효율적입니다.
원격 서버에서 git를 밀고 당기는 것은 실제로 프로젝트와 클라이언트간에 액세스 수준이 다르므로 실제로 옵션이 아닙니다.
(거친 추측)에 바로 전달 방법이 있나요 :
pipe 'diff --names-only' to 'git-archive'?
그냥 posterities를 위해서, 그 다른 기술은 다음과 같을 것이다 :'git diff --name-only [diff options] | xargs tar -czf files.tar.gz' – jason
'xargs' 명령으로 하나의 명령 행에 모두 파일을 넣을 수있는 파일이 너무 많으면'xargs'가'tar'를 두 번 이상 실행하기 때문에 다른 문제가 있습니다. 이렇게하면'tar'가 새로운 .tar 파일을 작성하여 이전 파일을 덮어 쓰게되므로 마지막 배치 파일 만 포함하게됩니다. –
구문을 설명해 주셔서 감사합니다! 백틱은 내가 필요한 것입니다 :) 이것은 파일명 (윈도우 ...)에 공백이있는 곳을 제외하고 msysgit과 함께 제공되는 bash 명령 줄에서 완벽하게 작동합니다. 자동으로 탈출 할 수있는 방법이 있습니까? – AKS