在后台运行但不丢弃输出

在后台运行但不丢弃输出

我使用 Git 托管。所以我经常跑步git push

我想git push在后台运行,以便我不用等待它完成,而是在终端中执行其他任务。

但我不想git push在真实的后台运行(git push &),因为我需要查看它的输出以确保它运行时没有错误。

像后台进程一样运行它但仍然看到其输出的正确方法是什么?

我所传达的最好的事情是:

xterm -hold -e 'git push' &

但这使用的是 XTerm,而不是我最常使用的应用程序 Gnome Terminal。这在某种程度上是不一致的。

还有什么其他选择?

答案1

如果您不需要实时查看输出,您可以执行以下操作:

git push 2>&1 > ~/git-push-$(date +"%Y%m%d-%H%M").log &

上面的代码将在您的主目录中创建一个文件,其文件名中包含您调用它的日期和时间(例如git-push-20160208-1201.log)。您可以将其放入别名或 shell 函数中,这样您就不必重新输入,或者如果您只需要保留最后一次推送以供审核,则可以使用:

git push 2>&1 > ~/git-push.log &

您甚至可以使用以下任一命令,在推送失败时向自己发送通知:

git push 2>&1 > ~/git-push.log || notify-send "Push failed" "git push initiated from $(pwd) at $(date) threw an error!" &

答案2

git push 2>&1 &

“2>&1”将所有输出重定向到标准输出

相关内容