[git] .gitignore 특정 파일 제외
.gitignore
파일 을 사용 templates.js
하여 public/app/
폴더 에있는 제외 하려고 합니다. 내 .gitignore
파일은 다음과 같습니다.
/vendor
/node_modules
composer.phar
composer.lock
.DS_Store
templates.js
하지만 Git Gui를 체크인하면 templates.js
파일이 여전히 표시됩니다. 를 사용하여 파일을 구체적으로 제외하려면 어떻게 .gitignore
해야합니까?
답변
“무시하다”라는 이름이 암시하는 것과는 대조적입니다. 파일을 제출할 .gitignore
때만 참조됩니다 git add
. 즉, 저장소 (의 색인)에 이미 추가 된 파일은 .gitignore
.
먼저 .gitignore
파일이 더 이상 추가되지 않도록 수정하는 것이 좋습니다 . .gitignore
파일에 다음 행을 추가 하십시오.
public/app/template.js
다음으로 저장소에서 파일을 제외해야합니다. 아마도 파일 시스템에서 파일을 제거하고 싶지 않을 것입니다. 다음을 사용하여 수행 할 수 있습니다.
git rm --cached public/app/template.js
--cached
플래그는 파일이 파일 시스템에서 제거되지 않습니다 보장합니다. (당신이 사용할 수있는 중요하지 않은 경우 git rm public/app/template.js
, 하지만이 파일을 제거합니다 ).
배경
.gitignore
사전에 사용되지 않는 이유 는 때때로 .gitignore
. 추적하지 않으려는 예를 들어 말 *.log
지정할 수있는 파일을 *.log
에 .gitignore
. 그러나 추적하려는 특정 항목이 있으면 추가 할 수 있습니다 git add -f some.log
. -f
플래그 힘은 git
파일을 추가합니다.
답변
파일이 git 저장소에 한 번 ‘추가’되면 .gitignore 파일에 나열되는지 여부에 관계없이 계속 추적됩니다.
이전에 template.js 파일을 추가했다고 생각합니다.이 경우 저장소에서 제거 할 때까지 변경 사항이 계속 추적됩니다. 파일이 저장소에서 제거되면 .gitignore 파일을 통해 제대로 무시됩니다.
파일을 삭제하지 않고 git 저장소 (명령 줄)에서 제거하는 방법은 다음과 같습니다.
git rm --cached FILENAME
그런 다음 gitignore의 파일로 커밋을 시도하면 작동하지 않습니다.
gitignore에있는 파일을 구체적으로 추가하는 경우 파일을 수동으로 추가하면 gitignore가 무시됩니다.
답변
이미 파일을 추적하고있는 경우 ( git add
및 git commit
) .gitignore
도움이되지 않습니다.
나는 당신이 원하는 것은 파일을 추적 중지하는 것입니다 생각 다음 사용 .gitignore
을 제외 할 수 있습니다. 파일 추적을 중지하고 파일을 유지하려면 다음을 사용하십시오.
git rm --cached <file>
답변
이 경우 추적 templates.js
을 중지 할 수 있습니다.
git rm --cached public/app/templates.js
다른 사람들이 설명 .gitignore
했듯이은 추가 할 콘텐츠 만 무시합니다. 자주 사용하는 경우, 예를 들어, git add .
및이 templates.js
당신의 .gitignore
다음 자식은 추가되지 않습니다.