I just found a case where grep and git grep yield different results. Inside the ixgbe directory of the Linux kernel I did: $ grep enter_lplu *.[ch] And got the following: ixgbe_main.c: if (adapter->hw.phy.ops.enter_lplu) { ixgbe_main.c: adapter->hw.phy.ops.enter_lplu(&adapter->hw); ixgbe_type.h: s32 (*enter_lplu)(struct ixgbe_hw *); ixgbe_x550.c:/** ixgbe_enter_lplu_x550em - Transition to low power states ixgbe_x550.c:static s32 ixgbe_enter_lplu_t_x550em(struct ixgbe_hw *hw) ixgbe_x550.c: phy->ops.enter_lplu = ixgbe_enter_lplu_t_x550em; But when I did: $ git grep enter_lplu I got: ixgbe_main.c: if (adapter->hw.phy.ops.enter_lplu) { ixgbe_main.c: adapter->hw.phy.ops.enter_lplu(&adapter->hw); ixgbe_type.h: s32 (*enter_lplu)(struct ixgbe_hw *); ixgbe_x550.c:/** ixgbe_enter_lplu_x550em - Transition to low power states ixgbe_x550.c:static s32 ixgbe_enter_lplu_t_x550em(struct ixgbe_hw *hw) You can see that git grep missed the line in ixgbe_x550.c that had two hits on the string. This was with git 2.1.0 in Fedora 21. I use git grep a lot and never noticed a problem before. I just updated my Fedora 21 system yesterday, so I have to figure that has something to do with it. I checked and git didn't get updated, so I figure it must be a library that is really broken. I see in my update log that pcre was updated to: pcre.x86_64 0:8.35-12.fc21 pcre-devel.x86_64 0:8.35-12.fc21 Yet the grep command is unaffected. -- Mark Rustad, Networking Division, Intel Corporation