less than 1 minute read

$ git archive --format=tar origin/master \
  | gzip -9c \
  | ssh USER@SERVER "mkdir -p TARGET_DIR; tar --directory=TARGET_DIR -xvzf -"

파일로 저장 안 하고 stdout으로 출력한 데이터를 압축하고 서버에 전송한 후 tar 프로그램으로 푼다. tar 프로그램 - 인자는 데이터를 stdin으로 받겠다는 뜻이다. 크 멋지구나. archive 옵션 같은 건 파일 이름을 받아야 하지 않나? 왜 강제하지 않는 걸까? 이런 의문이 한 번에 풀린다.

참고