“자동”모드에서 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
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);