programing

.gitignore에 Linux 실행 파일을 추가하는 방법은 무엇입니까?

yoursource 2021. 1. 15. 19:49
반응형

.gitignore에 Linux 실행 파일을 추가하는 방법은 무엇입니까?


명시적인 확장자를 부여하지 않고 특정 또는 / bin 디렉토리에 배치하지 않고 Linux 실행 파일을 .gitignore에 어떻게 추가합니까? 대부분의 이름은 ".c"확장자없이 컴파일 된 C 파일과 동일합니다.


소스 코드 파일을 제외하고 모두 무시할 수 있습니까?

예를 들면 :

*
!*.c
!Makefile

나는 그것들을 프로젝트 .gitignore에 명시 적으로 넣을 것입니다. 그것은 우아한 아니지만, 나는 당신의 프로젝트가없는 상상 중 많은.


대부분의 개발자는 일반적으로 build실제 빌드 프로세스가 실행되는 프로젝트에 디렉토리를 가지고 있습니다. 그래서, 모든 실행 파일, .o, .so, .a, 등이있다이 빌드 디렉토리는에 추가됩니다 .gitignore.


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"

풍모:

  • 최상위 폴더에서 찾기 시작합니다 (잘못된 기능 일 수 있습니다!).
  • 일반 규칙으로 무시할 수있는 .o 및 .so 파일을 제외한 ELF 파일을 무시합니다.
  • .gitignore의 기존 항목을 복제하지 않고 보존합니다.

이 단일 스크립트 버전은 다음과 같습니다. http://sam.nipl.net/b/git-ignore-elf-1

다음은 같은 위치의 다른 스크립트 (git-root, find-elf, uniqo)에 의존하는 더 모듈 식 버전입니다. http://sam.nipl.net/b/git-ignore-elf


.gitignore현재 디렉토리의 모든 실행 파일에서 한 번에 차이점을 생성하는 방법 :

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

이것은 파일에 대한 수동 변경 사항을 잃지 않는다는 것을 의미하는 diff를 생성합니다. 이것은 .gitignore파일이 이미 정렬되어 있다고 가정합니다 . sed 부분 ./은 find가 생성 하는 선행 제거합니다 .

실행 파일 만 무시하는 자동 방법은 없으므로 항상 파일을 수동으로 관리해야합니다.

참조 URL : https://stackoverflow.com/questions/8237645/how-to-add-linux-executable-files-to-gitignore

반응형