如何缩短'git pull'命令的输出?

时间:2019-02-25 07:04:30

标签: git github git-pull

  • 所以我在git存储库上运行了$ git pull命令。
  • 它会输出我感兴趣的有用详细信息,以及我不关心的许多其他详细信息。
  • 那么是否有一些切换或选项可以只保留我需要的详细信息?

$ git pull

需要此信息:

remote: Enumerating objects: 2866, done.
remote: Counting objects: 100% (2866/2866), done.
remote: Total 4840 (delta 2865), reused 2865 (delta 2865), pack-reused 1974
Receiving objects: 100% (4840/4840), 7.51 MiB | 2.98 MiB/s, done.
Resolving deltas: 100% (3810/3810), completed with 531 local objects.
From https://github.com/erlang/otp
   76da23bb4e..6053c0e4d7  master     -> origin/master
   77cff66931..39968f062e  maint      -> origin/maint
   934f9974eb..f30b1052c7  maint-21   -> origin/maint-21
 * [new tag]               OTP-21.2.6 -> OTP-21.2.6
 * [new tag]               OTP-20.3.2.1 -> OTP-20.3.2.1
Updating 76da23bb4e..6053c0e4d7

不需要此信息

Fast-forward
 .gitignore                                         |     3 +
 bootstrap/bin/no_dot_erlang.boot                   |   Bin 6539 -> 6541 bytes
 bootstrap/bin/start.boot                           |   Bin 6539 -> 6541 bytes
 bootstrap/bin/start_clean.boot                     |   Bin 6539 -> 6541 bytes
 bootstrap/lib/compiler/ebin/beam_a.beam            |   Bin 3364 -> 3200 bytes
 bootstrap/lib/compiler/ebin/beam_asm.beam          |   Bin 11040 -> 10996 bytes
 bootstrap/lib/compiler/ebin/beam_block.beam        |   Bin 3460 -> 3444 bytes
 bootstrap/lib/compiler/ebin/beam_disasm.beam       |   Bin 20864 -> 20860 bytes
 bootstrap/lib/compiler/ebin/beam_except.beam       |   Bin 4252 -> 4228 bytes
 bootstrap/lib/compiler/ebin/beam_jump.beam         |   Bin 10024 -> 9988 bytes
 .../lib/compiler/ebin/beam_kernel_to_ssa.beam      |   Bin 29484 -> 28880 bytes
 bootstrap/lib/compiler/ebin/beam_peep.beam         |   Bin 3644 -> 3604 bytes
 bootstrap/lib/compiler/ebin/beam_ssa.beam          |   Bin 12208 -> 12176 bytes
 bootstrap/lib/compiler/ebin/beam_ssa_bsm.beam      |   Bin 18176 -> 17952 bytes
 bootstrap/lib/compiler/ebin/beam_ssa_codegen.beam  |   Bin 37824 -> 37708 bytes
 bootstrap/lib/compiler/ebin/beam_ssa_dead.beam     |   Bin 12128 -> 11876 bytes
 bootstrap/lib/compiler/ebin/beam_ssa_lint.beam     |   Bin 7512 -> 7536 bytes
 etc...

那我该怎么做?

2 个答案:

答案 0 :(得分:5)

提醒一下,git pull命令实际上是git fetch,然后是与给定(或已解决)的远程跟踪分支的合并。

对您有用的第一部分是git pull的“获取”部分的输出。您不想要的第二部分是随后的快速合并的输出。

您可以拆分操作,以便仅使第二部分静音:

git fetch
git pull -q

想少打字吗?做一个别名

git config --global alias.qpull '!git fetch && git pull -q'

然后就做

git qpull origin <someBranch>  # for "quiet pull" for example but anything goes of course

答案 1 :(得分:1)

RomainValeri notes一样,git pull只是git fetch加上第二个Git命令。这是第二个对您“嘈杂”的Git命令; git fetch会显示您想要的内容。

git merge嘈杂的原因是因为git merge在默认情况下会先运行git diff --stat,然后再将HEADHEAD@{1})的先前值与当前值,(在这种情况下)打印Fast-forward行并在分支名称上执行快进操作,而不是合并,然后是git checkout更新的提交。

The git merge command除其他众多选项外,还选择了以下三个选项:

  
    

-stat
-n
--no-stat

在合并结束时显示diffstat。 diffstat也由配置选项merge.stat控制。
    使用-n或--no-stat不会在合并结束时显示diffstat。

  

因此,您可以将pull拆分为单独的组件(如RomainValeri所建议的),然后使用git merge -n:您仍将在此处获得快进消息,但不能获得diffstat。

git pull命令通常无论如何都会将其大多数选项发送到git merge。其中包括-n--no-stat。它的某些选项会发送到git fetch,而另一些选项会发送给两个。最后一个问题是在此处使用-q的问题:它同时涉及基础提取。如果要使用-q,这将迫使您将命令分为两个部分。

您还可以将merge.stat配置为false,而不必进行任何处理。之后,所有合并将变得更加安静。

出于多种原因,我通常建议还是将git pull分开。最重要的一点是,在git fetch之后,我常常想检查获取的内容,以确定是否该进行合并,变基或不该合并。