web-dev-qa-db-ja.com

Linux実行可能ファイルを.gitignoreに追加する方法は?

Linux実行可能ファイルを.gitignoreに追加するには、明示的な拡張子を指定せずに、特定の/ binディレクトリに配置しませんか?ほとんどは、「。c」拡張子なしでコンパイルされたCファイルと同じ名前が付けられます。

52
haziz

ソースコードファイル以外のすべてを無視できますか?

例えば:

*
!*.c
!Makefile
37
Havok

それらをプロジェクト.gitignoreに明示的に配置します。それはエレガントではありませんが、あなたのプロジェクトにはthatが多くないと思います。

13
Ben

ほとんどの開発者は通常、実際のビルドプロセスが実行されるプロジェクトにbuildディレクトリを持っています。したがって、すべての実行可能ファイル、.o.so.aなどがあり、このビルドディレクトリが.gitignore

6
Zaxter

ELF実行可能ファイルを.gitignoreに自動的に追加するスクリプトを作成しました。

git-ignore-elf

#!/bin/sh
set -eu
cd "$(git rev-parse --show-toplevel)"
file=.gitignore
new=$file.new.$$
(
if [ -e "$file" ]; then
    cat "$file"
fi
find . -name .git -Prune -o -type f ! -name '*.o' ! -name '*.so' \
    -print0 | xargs -0 file | grep ': *ELF ' | sed 's/:.*//' |
sed 's,^./,,'
) | Perl -ne 'print if !$already{$_}++' >"$new"
mv "$new" "$file"

特徴:

  • 最上位のフォルダーから検索を開始します(機能に問題がある可能性があります!)
  • eLFファイルを無視します。一般的なルールで無視できる.oおよび.soファイルを除きます
  • .gitignoreの既存のエントリを複製せずに保持します

この単一スクリプトバージョンは次のとおりです。 http://sam.nipl.net/b/git-ignore-elf-1

これは、同じ場所にある他のスクリプト(git-root、find-elf、uniqo)に依存する、よりモジュール化されたバージョンです。 http://sam.nipl.net/b/git-ignore-elf

5
Sam Watkins

現在のディレクトリのすべての実行可能ファイルから.gitignoreに対して差分を生成する方法:

find . -perm /111 -type f | sed 's#^./##' | sort | diff -u .gitignore -

これは差分を生成します。つまり、ファイルへの手動の変更は失われません。これは、.gitignoreファイルが既にソートされていることを前提としています。 sed部分は、findが生成する先頭の./を取り除くだけです。

実行可能ファイルのみを自動的に無視する方法はないため、常にファイルを管理する必要があります。

3
Mark Fisher