문제

주어진 커밋에서 변경된 파일 또는 GIT의 커밋 일련의 커밋 만 내보내는 간단한 방법이 있습니까? 나는 이것을하는 명확한 지시를 찾을 수 없다 (그리고 나는 Linux/Git을 처음 접한다).

MSYSGIT를 사용하고 있으며 대부분의 경우 전체 리포지토리를 배포하는 것이 좋습니다. 그러나 많은 경우 한 번에 몇 개의 파일을 작은 수정 사항을 배포하는 것이 훨씬 더 효율적입니다.

원격 서버에서 GIT를 푸시/당기기/설치하는 것은 프로젝트와 클라이언트마다 내 액세스 수준이 다르기 때문에 실제로 옵션이 아닙니다.

(거친 추측)로 향하는 간단한 방법이 있습니까?

pipe 'diff --names-only' to 'git-archive'? 
도움이 되었습니까?

해결책

나는 git-archive를 포함 할 필요가 없다고 생각합니다. 사용 --name-only, 당신은 파일을 tar로 올릴 수 있습니다.

tar czf new-files.tar.gz `git diff --name-only [diff options]`

Linux를 처음 사용하기 때문에 설명이 필요할 수 있습니다.

명령 줄의 백 티크는 쉘이 먼저 백 티크 내에서 명령을 실행 한 다음 해당 명령의 출력을 명령 줄로 대체합니다. tar. 그래서 git diff 먼저 실행되며 각 줄에 파일 이름 목록을 생성합니다. 최신 라인은 공간으로 무너지고 전체 파일 목록이 tar 명령 줄. 그 다음에 tar 주어진 아카이브를 만들기 위해 실행됩니다. 이것은 매우 긴 명령 줄을 생성 할 수 있으므로 매우 많은 수의 변경 파일이있는 경우 다른 기술이 필요할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top