[解決済み] Git プロジェクトのすべてのブランチで「grep 検索」を実行することはできますか?
質問
を実行することは可能ですか?
git grep
Git コントロールソースのプロジェクトのすべてのブランチの内部で?あるいは、他に実行するコマンドがあるのでしょうか?
解決方法は?
質問 " コミットされたコードをgitの履歴からgrep(検索)する方法は? "を推奨しています。
git grep <regexp> $(git rev-list --all)
これはすべてのコミットを検索し、すべてのブランチを含むはずです。
別の形としては
git rev-list --all | (
while read revision; do
git grep -F 'yourWord' $revision
done
)
さらに多くの例が この記事 :
git が引数のサイズについて文句を言うほど大きなプロジェクトで上記を試したので、もしこの問題に遭遇したら、以下のようなことを行ってください。
git rev-list --all | (while read rev; do git grep -e <regexp> $rev; done)
(この回答の最後のセクションの代替案を参照してください。)
必要であれば、それらの設定を忘れないでください。
# Allow Extended Regular Expressions
git config --global grep.extendRegexp true
# Always Include Line Numbers
git config --global grep.lineNumber true
このエイリアスも役に立ちます。
git config --global alias.g "grep --break --heading --line-number"
2016年8月更新 R.M. がコメントで推奨しています。
<ブロッククオート
を手に入れました&quot。
fatal: bad flag '->' used after filename
を試したところ
git branch
バージョンに変更しました。このエラーは
HEAD
というエイリアシング表記があります。
を追加することで解決しました。
sed '/->/d'
の間にあるパイプでtr
とxargs
コマンドを使用します。
git branch -a | tr -d \* | sed '/->/d' | xargs git grep <regexp>
ということです。
alias grep_all="git branch -a | tr -d \* | sed '/->/d' | xargs git grep"
grep_all <regexp>
これは、解決策を改善するものです。
チェルニー
がありました。
提案された
ということです。
git rev-list --all
はやりすぎです。
より洗練されたコマンドにすることができます。
# Don't use this, see above
git branch -a | tr -d \* | xargs git grep <regexp>
<ブロッククオートこれにより、ブランチ(リモートブランチを含む)のみを検索することができます。
bash/zshのエイリアスを作成することもできます。
# Don't use this, see above
alias grep_all="git branch -a | tr -d \* | xargs git grep"
grep_all <regexp>
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] git pull」と「git fetch」の違いは何ですか?
-
[解決済み] コミット前に 'git add' を取り消すにはどうすればよいですか?
-
[解決済み] 現在のGit作業ツリーからローカル(未追跡)ファイルを削除する方法
-
[解決済み] Git ですべてのリモートブランチをクローンする方法
-
[解決済み] git rebase の取り消し
-
[解決済み] コミットに含まれるすべてのファイルを一覧表示するにはどうすればよいですか?
-
[解決済み] マージされたGitブランチをすべて削除するにはどうすればよいですか?
-
[解決済み] すべてのGitブランチを取得する方法
-
[解決済み】"git pull" でローカルファイルを強制的に上書きするには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Git, fatal: リモートエンドが予期せずハングアップしました。
-
[解決済み】git revert <hash> not allowed due to a merge but no -m option was given.
-
[解決済み】ローカルに変更があるにもかかわらず、git pushが「すべて最新」と言う
-
[解決済み】git push >> fatal: 設定されたプッシュ先がありません。
-
[解決済み] リモートから<branch name>とマージするように構成が指定されていますが、そのような参照は取得されませんでしたか?
-
[解決済み] このリポジトリで別の git プロセスが実行されているようです。
-
[解決済み] git ls-remote と git ls-remote origin の違い。
-
[解決済み] Gitの履歴からコミットしたコードをgrep(検索)する方法
-
[解決済み] ポーセリンとは、Gitではどのような意味ですか?
-
[解決済み】Gitを使用して、すべてのブランチにまたがって文字列を検索するにはどうすればよいですか?