programing

.gitignore에 Linux 실행 파일을 추가하는 방법

goodcopy 2022. 7. 28. 22:36
반응형

.gitignore에 Linux 실행 파일을 추가하는 방법

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

소스 코드 파일만 무시해도 될까요?

예를 들어 다음과 같습니다.

*
!*.c
!Makefile

의 ★★★★★★★★★★★★★★★★★★★★★.build실제 빌드 프로세스가 실행되는 프로젝트의 디렉토리입니다., 모든 가능 파일, " " 」.o,.so,.a이 디렉토리가 에 」 、 「 」 、 「 」.gitignore.

나는 그것들을 명시적으로 .gitignore 프로젝트에 넣을 것이다.우아하지는 않지만, 당신의 프로젝트는 그렇게 많지 않을 거예요.

ELF 실행 을 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 파일을 무시합니다.
  • 는 중복되지 않고 .internore의 기존 엔트리를 유지합니다.

이 싱글 스크립트 버전은 http://sam.nipl.net/b/git-ignore-elf-1에 있습니다.

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

.gitignore현재 dir의 모든 실행 파일에서 한 번에 이동합니다.

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

이렇게 하면 파일에 대한 수동 변경 내용이 손실되지 않습니다.이 '아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 네..gitignore파일이 이미 정렬되어 있습니다. SED를 ../생성되지 않습니다.

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

실행 파일이 꽤 많은 "프로젝트"가 있는 경우, 예를 들어 결과가 컴파일되는 작은 연습이 많은 스터디 프로젝트가 있는 경우, 다음 한 줄을 사용하여 .gitignore를 업데이트할 수 있습니다.

for f in $(find . -perm /111 -type f | grep -v '.git' | sed 's#^./##' | sort -u); do grep -q "$f" .gitignore || echo "$f" >> .gitignore ; done

나도 이 문제를 몇 번이나 알아내려고 했다.오래 지속된 해결책을 공유하고 싶다.바둑의 관점에서 쓰고 있습니다만, 그 이외에는 일반적으로 적용할 수 있다고 생각합니다.

첫째, 일반적인 프로젝트에서는 실행 파일(및/또는 바이너리)이 훨씬 적은 것으로 관찰되고 있습니다.그 다음으로 모든 것이 중요합니다.또한, "무시하지 않도록" 소스 파일을 명시적으로 표시하고 다른 모든 파일을 무시하는 접근 방식은 잘 작동하지 않습니다. 왜냐하면 우리는 우리의 코멘트나 텍스트 파일(예: 텍스트 파일)도 얻기를 원하기 때문입니다.

따라서 실행 파일에 .e 서픽스를 붙이고 .gitignore에 *.e를 붙이는 규칙을 만드는 것이 해결책이었습니다.

그것은 간단하고 잘 작동한다.

글쎄요, Makefile에 규칙을 한두 개 추가할 수 있습니다.

$(TARGET): $(TARGET).o
    $(CC) -ggdb -o $@ $^
    @grep $@ .gitignore > tmp || true
    @[ -s tmp ] || echo $@ >> .gitignore; rm tmp

실행 파일이 아직 존재하지 않는 경우 .internore에 추가됩니다.

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

반응형