Skip to content

push

로컬 변경 사항을 리모트로 푸시(push)해요.

이 메서드는 푸시를 수행하는 모든 단계를 실행해요.
만약 refspecs를 전달하지 않으면, 리모트에 설정된 기본 refspec이 사용돼요.

시그니처

ts
class Remote {
  push(
    refspecs: string[],
    options?: PushOptions,
    signal?: AbortSignal,
  ): Promise<void>;
}

파라미터

  • refspecs필수 · string[]

    리모트로 푸시할 refspec 목록이에요.

  • optionsnull | PushOptions

    푸시 작업을 위한 옵션이에요.

    • credentialCredential

      Git 인증 정보를 나타내는 인터페이스예요.

    • customHeadersstring[]

      이 푸시 작업에 추가할 HTTP 헤더 목록이에요.

    • followRedirectsRemoteRedirect

      리모트 리디렉션(다른 URL로 이동) 허용 여부를 설정해요.

      - None : 어떤 경우에도 리디렉션을 따르지 않음
      - Initial : 초기 요청(/info/refs)에서만 리디렉션 허용 (기본값)
      - All : 모든 요청에서 리디렉션 허용

    • pbParallelismnumber

      푸시할 데이터를 패킹할 때 사용할 병렬 작업 수를 설정해요. 0이면 자동으로 적절한 개수를 선택하며, 기본값은 1이에요.

    • proxyProxyOptions

      푸시 작업에서 사용할 프록시 설정이에요.

      • autoboolean

        Git 설정에서 자동으로 프록시를 감지할지 여부를 설정해요. 이 옵션을 사용하면 url 설정을 덮어써요.

      • urlstring

        사용할 프록시의 URL을 명시적으로 지정해요. 이 옵션을 사용하면 auto 설정을 덮어써요.

    • remoteOptionsstring[]

      리모트에 전달할 추가 푸시 옵션이에요.

  • signalnull | AbortSignal

    요청을 중단할 때 사용할 AbortSignal 객체예요.

예제

ts
import { openRepository } from 'es-git';

const repo = await openRepository('/path/to/repo');
const remote = repo.getRemote('origin');

// 로컬 "main" 브랜치를 리모트 "other" 브랜치로 푸시해요.
await remote.push(['refs/heads/main:refs/heads/other']);

// 인증 정보를 포함해서 푸시해요.
await remote.push(['refs/heads/main:refs/heads/other'], {
  credential: {
    type: 'Plain',
    password: '<personal access token>',
  },
});

MIT 라이선스에 따라 배포됩니다.