명시 적 확장자를주지 않고 특정 또는/bin 디렉토리에 배치하지 않고 어떻게 Linux 실행 파일을 .gitignore에 추가합니까? 대부분은 ".c"확장자없이 컴파일 된 C 파일과 동일하게 명명됩니다..gitignore에 Linux 실행 파일을 추가하는 방법은 무엇입니까?
답변
나는 그것을 프로젝트 .gitignore에 명시 적으로 넣을 것이다. 우아하지는 않지만 프로젝트에 이없고 그 중 많은 수가이라고 생각합니다.
이유는 정확히이다. –
현재 디렉토리의 모든 실행 파일에서 .gitignore
하나의 이동에 대한 차이를 생성하는 방법 :
find . -perm /111 -type f | sed 's#^./##' | sort | diff -u .gitignore -
이 사용자가 해당 파일을 수동으로 변경 잃지 말고 의미 DIFF를 생성합니다. 이 경우 귀하의 .gitignore
파일이 이미 정렬되었다고 가정합니다. sed 부분은 find가 생성하는 선도 인 ./
을 제거합니다.
실행 파일 만 자동으로 무시하는 방법이 없으므로 항상 파일을 수동으로 관리해야합니다.
소스 코드 파일을 모두 무시할 수 있습니까? 예를 들어
는 :
*
!*.c
!Makefile
나는 자동으로 .gitignore
에 ELF 실행 파일을 추가 할 수있는 스크립트를 썼다.
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"
특징 :
- 이 (! misfeature 수 있습니다)
- 는 ELF 파일을 제외 .o 인 및 .so는 파일을 무시 최상위 폴더에서 찾고 시작 일반 규칙으로 무시할 수 있습니다.
- 은 .gitignore의 기존 항목을 복제하지 않고 보존합니다.
이 단일 스크립트 버전은 여기에 있습니다 : http://sam.nipl.net/b/git-ignore-elf-1 여기
가 (발견 엘프, uniqo을 자식 루트) 같은 장소에서 다른 스크립트에 따라 더 모듈 버전입니다 : http://sam.nipl.net/b/git-ignore-elf
파이썬과 파일을 사용하여 유사한 응답이 (1), 여기 : http://stackoverflow.com/a/19749478/218294 –
대부분의 개발자는 일반적으로 프로젝트에 실제 빌드 프로세스가 실행되는 디렉토리 인 build
디렉토리를 가지고 있습니다. 그래서, 모든 실행, .o
, .so
, .a
등이있다이 빌드 디렉토리는 .gitignore
에 추가됩니다.
이 병합 할 수 http://stackoverflow.com/questions/5711120/gitignore-without-binary-files 의 중복이 꽤 많이 있습니다. –
아니요, 실행 파일과 이진 파일간에 차이가 있습니다. 실행 가능한 스크립트와 바이너리 파일을 모두 무시할 필요가 있습니다. 나는이 질문이 중복 된 것이라고 생각하지 않는다. 이 * 그들 중 많은 것을 * 때문에 나는이 질문에 우연히 – Alexander