git이 “자동 모드”에서 작동 할 수 있습니까? 것을 허용합니까? 아래는

“자동”모드에서 git 명령을 실행할 수 있습니까? 예를 들어 ” git push origin” 라고 말했는데 화면에 아무것도 표시되지 않습니까?

IO를 /dev/null(잘 작동 함)으로 리디렉션 할 수 있다고 생각 하지만 .. git은 자연스럽게 이와 같은 것을 허용합니까?

아래는 자동 EOD 커밋을 수행하는 빠른 스크립트로, 기차를 타야하고 로컬 컴퓨터에 코드를 남기고 싶지 않을 때 사용됩니다.

  1 clear
  2
  3 cd
  4 cd repo/active
  5
  6 for i in *
  7 do
  8   cd $i
  9   echo "Pushing " $i
 10   git add . -A >> /dev/null
 11   git commit -a -m "EOD automatic commit" >> /dev/null
 12   git push origin >> /dev/null
 13   echo
 14   cd ..
 15 done

알려주세요.



답변

출력을 / dev / null로 리디렉션하는 것은 나에게 자연스러운 방법처럼 보입니다. 과거에 cron 작업에 사용하기 위해 다음과 같은 quiet_git 셸 함수를 정의했지만 :

quiet_git() {
    stdout=$(tempfile)
    stderr=$(tempfile)

    if ! git "$@" </dev/null >$stdout 2>$stderr; then
        cat $stderr >&2
        rm -f $stdout $stderr
        exit 1
    fi

    rm -f $stdout $stderr
}

이것은 git 명령이 실패하지 않는 한 stdout 및 stderr을 억제합니다. 예쁘지 않습니다. 사실 stdout 파일은 무시되며 / dev / null로 리디렉션해야합니다. 그래도 작동합니다. 그런 다음 나중에 스크립트에서 “quiet_git push”등을 수행 할 수 있습니다.


답변

당신은 사용할 수 있습니다 --quiet또는 -q다른 망할 놈의 명령에도 사용 할 수있는 :

git commit --quiet
git push --quiet

답변

사용 &> /dev/null마지막에 당신에게 완전히 침묵 자식 명령 출력을 제공합니다.

git fetch origin master &> /dev/null

답변

도 참고 --quiet 하는 git fetch(A를 트리거하는이 git gc) 몇 가지 출력을 생성합니다.
그 때문에이다 git gc의 일부 git fetch.

더 이상은, 자식 2.1.1 (2014 9 월) 시작하는 : 참조 6fceed3bea59d747c160972c67663e8b8c281229을 커밋 에서 (응웬 타이 응옥 두이 pclouds)

가져 오기 : 주어진 git-gc경우 침묵--quiet

builtin/fetch.c:

argv_array_pushl(&argv_gc_auto, "gc", "--auto", NULL);
if (verbosity < 0)
argv_array_push(&argv_gc_auto, "--quiet");
run_command_v_opt(argv_gc_auto.argv, RUN_GIT_CMD);