이미 말했듯이 상태에서 제외하려면 다음을 사용하십시오.
git status -uno # must be "-uno" , not "-u no"
대신 현재 추적되지 않은 파일을 영구적으로 무시하려면 프로젝트 루트에서 다음을 시작하십시오.
git status --porcelain | grep '^??' | cut -c4- >> .gitignore
이후의 모든 호출 git status
은 해당 파일을 명시 적으로 무시합니다.
업데이트 : 위의 명령에는 약간의 단점이 있습니다. .gitignore
아직 파일 이 없으면 gitignore가 자체를 무시합니다! 이는 파일 이 실행 .gitignore
되기 전에 파일 이 생성되기 때문에 발생합니다 git status --porcelain
. 따라서 .gitignore
아직 파일 이 없으면 다음을 사용하는 것이 좋습니다.
echo "$(git status --porcelain | grep '^??' | cut -c4-)" > .gitignore
이 완료 서브 쉘 생성 하기 전에 을.gitignore
파일이 만들어집니다.
명령 설명 내가 많은 투표를 받고있을 때 (감사합니다!) 나는 그 명령을 조금 더 잘 설명 할 것이라고 생각합니다.
git status --porcelain
대신 사용 git status --short
하기 때문에 수동 상태가 "스크립트 쉬운 구문 분석 형식으로 출력을 지정합니다.이 짧은 출력과 비슷하지만 자식 버전에서 안정적인 관계없이 사용자 구성에 남아있을 것이다." 따라서 파싱 성과 안정성이 모두 있습니다.
grep '^??'
git status manual??
에 따르면 추적되지 않은 파일에 해당하는로 시작하는 행만 필터링 합니다.
cut -c4-
모든 줄의 처음 3자를 제거하여 추적되지 않은 파일의 상대 경로를 제공합니다.
|
기호는 파이프 다음 명령의 입력 이전 명령의 출력을 전달;
>>
및 >
기호는 리디렉션 연산자 파일에 덮어 쓰기 또는 이전 명령의 출력을 추가 / 각각 새로운 파일을 생성한다.
및 대신에 사용sed
하는 것을 선호하는 사람들을위한 또 다른 변형 다음 과 같은 다른 방법이 있습니다.grep
cut
git status --porcelain | sed -n -e 's/^?? //p' >> .gitignore