2016-12-09 6 views
2

git bash와 함께 git GUI를 사용하고 있습니다. 자, 내가 git 파일을 무시하고 싶다면 .gitignore 파일에 넣어야한다.파일을 이륙하는 방법 (git 및 git GUI)

1) Windows의 자식이 .gitignore 파일을 만들지 않고 자신을 만들어야한다는 것을 알게되었습니다. 또한 GUI GUI를하지 않습니다. 이 올바른지?

이제 나의 특별한 상황 :

가 나는 또 다른 파일을 추적 내가 .c 및 .H 파일과 함께이 프로젝트를 관리하고 함께의 시작 부분에서 실수를 (의는 "shouldnottrack.file"를 부르 자). 이 파일은 빌드 프로세스에 의해 생성되므로 원칙적으로 추적해서는 안됩니다.

그러나 나는 그것을했고 커밋에 포함되었습니다 (상연, 위탁 등).

지금, 을 추적하려면이 파일을 보내주십시오.

나는 git checkout -- shouldnottrack.file을 수행하여 temporalily을 수행했지만이 한 번만

2) 어떻게 내가 untrack이 파일을 작동? (GUI, 명령, 어떤 방법으로도 OK)

3)이 파일을 .gitignore 파일에 포함 시키면 자동으로 실행 취소 할 수 있습니까?

감사

답변

5

당신은 '.gitignore'에 추가하고 수행하여 자식에서 제거 가지고 git rm 당신이 원하지 않는 경우 (또는 git rm --cached (당신은 당신의 작업 디렉토리에있는 파일을 삭제하려는 경우) 그들을 삭제하지만 단지 그들을 추적하기 위해 중지).

그런 다음이 파일을 삭제하십시오. 실제 파일 이름으로 PATH-TO-YOUR-FILE 교체

git filter-branch --force --index-filter \ 'git rm --cached --ignore-unmatch PATH-TO-YOUR-FILE' \ --prune-empty --tag-name-filter cat -- --all

당신이 원하는 : 나는 독점적으로이 시도 두 번째 질문에 대한하지만 힘내 CLI를 사용하여 귀하의 첫 번째 질문에 대한

+0

'git rm'을 사용하지 않을 경우 파일을 삭제 하시겠습니까? 나는 그 파일을 지우고 싶다. – KansaiRobot

+0

그것이 빌드 결과라면 재생성하기 때문에 왜 문제가됩니까? 어쨌든, 'git rm --cached'여야합니다. – Philippe

+0

다음 번에 빌드 할 때 (그리고 파일을 가져올 때) 이것이 추적되지 않습니다. (무시 목록에 넣을 것입니다.) – KansaiRobot

0

확실하지 않음 역사에서 문질러 라. 당신의 라인을 따라 뭔가를 볼 수 :

Rewrite 48dc599c80e20527ed902928085e7861e6b3cbe6 (266/266) Ref refs/heads/master was rewritten

이 성공하면 - 이미 원격으로 추진해 왔습니다이 경우 후 덮어 쓰기하는 git push --force을 수행해야합니다. 분기의 보안 설정에서 밀어 넣기를 거부 할 수 있습니다.

마지막으로이 문제를 다시 방지하려면 문제의 파일을 무시 파일에 추가하면 git이 모든 추적을 방지합니다.

그러나 위의 대답은 데이터가 민감한 경우 (예 : 암호, ssh 키 등) 파일이 기록에 남아 있기 때문에이 방법을 강력하게 제안합니다.

자세한 내용은 https://help.github.com/articles/removing-files-from-a-repository-s-history/ 여기에서 https://help.github.com/articles/remove-sensitive-data/을 참조하십시오.

희망이 도움이됩니다.

딜란