.gitignore로 로컬에 파일을 남기면서 git에 올리지 않는 방법
이 기사에 대하여
.gitignore가 어떻게 움직이는지, 또 무엇인가를 실제의 Before, After의 상태를 캡쳐 해 설명해 갑니다.
동기 부여
.gitignore
를 사용하지 않으면 다음과 같은 일이 발생할 수 있습니다.
- Git 초보자가 여러 명으로 하나의 앱을 개발할 때 개별적으로 매번 바뀌는 설정 파일을 가진 탓으로 병합할 때 Conflict가 일어난다
- Github의 무료 계정을 사용하는 경우 모든 파일이 공개되므로 서버 정보를 작성한 파일도 Github에서 공개됩니다.
그런 때에, 이 .gitignore
가 소중하다는 것을 깨달았으므로 정리하려고 생각했습니다 (지금까지는 누군가가 .gitignore
를 항상 만들고 있었으므로 특히 의식하고 있지 않았습니다..).
절차
단순히 루트 디렉토리 아래에 .gitignore
라는 파일을 만들고 Github
에 넣지 않거나 git
로 추적하지 않으려는 파일을 지정합니다. 그 전에 파일을 이미 푸시 한 경우 git rm -r --cached ファイル名
라는 명령을 사용하여 git에서 지정된 파일을 제외합니다.
구현
CakePHP 기반 앱의 temp/cache
폴더를 제외합니다.
현재 상태
확실히 cache
가 Github에서 확인할 수 있습니다 (본래라면 아웃..).
Step1 : git rm -r --cached 파일 이름으로 git에서 지정된 파일 제외
다음은 실제 실행 결과입니다.
git status
를 보면, 제대로 untrack 된 것처럼 쓰여져 있습니다.
Step2 : .gitignore를 루트 디렉토리 아래에 만들고이 temp / cache를 무시하도록 다음과 같이 설명
이하, 실제의 실행 동작입니다.
내 경우에는 이미 .gitignore
를 만들었지만 실행하는 명령은 기본적으로 동일합니다. 동영상에 있듯이 마지막으로 변경한 내용을 commit
합시다.
Step3: git push에서 Github에 반영
Push합니다. 다음은 실제 실행 결과입니다.
구현 후
tmp/cache
폴더가 Github에서 사라졌는지 확인할 수 있습니다.
한편 로컬에서 폴더를 보면 tmp/cache
폴더가 사라지지 않았는지 확인할 수 있습니다. 즉 서버 정보를 올린 파일 등은 로컬에만 보관할 수 있습니다.
추가
※ @htsign 님으로부터 지적이 있었습니다만, git rm -r --cached ファイル名
그럼, 최신의 커밋으로부터 밖에 파일이 삭제되지 않습니다. 그래서 다음과 같이 과거의 커밋 이력을 보면 삭제한 파일이 보통으로 존재하게 됩니다.
이 파일 정보를 표시하고 싶지 않은 경우, git filter-branch
등의 커멘드로 과거 히스토리로부터도 파일을 삭제할 필요가 있습니다.
Git 리포지토리에 있는 파일을 기록별로 지우는 방법? 을 참고로, 실제로 지워 봅니다.
다음은 실제 실행 결과입니다.
그런 다음 git gc --aggressive --prune=now
에서 리포지토리를 최적화합니다.
이대로 Push하면 커밋 정보에 충돌이 있는 탓인지 거절됩니다.
git push -f
에서 강제로 푸시합니다.
잘 작동했습니다.
※팀에서 개발을 실시하는 경우, 이러한 강제적인 Push를 실시할까는, 신중하게 검토합시다.
마지막으로
이상, .gitignore
의 움직임에 대해 정리했습니다.
참고:
htps : // m / y_ 미노와 / ms / 3d8513dc31c1b378 0d
htps : // m / go _ st r / ms / 6 / 39d3 / b16 8094496c
h tps : // s t c ゔ ぇ rf ぉ w. 코 m / 쿠에 s 치온 s / 6403601 / 프 rg g-f-f-ro-m-t-re-po-u-d-una b-o-c-re-w-w 쿠 p
Reference
이 문제에 관하여(.gitignore로 로컬에 파일을 남기면서 git에 올리지 않는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/norifumi92/items/da0886cee22a3be567f5
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
.gitignore
를 사용하지 않으면 다음과 같은 일이 발생할 수 있습니다.- Git 초보자가 여러 명으로 하나의 앱을 개발할 때 개별적으로 매번 바뀌는 설정 파일을 가진 탓으로 병합할 때 Conflict가 일어난다
- Github의 무료 계정을 사용하는 경우 모든 파일이 공개되므로 서버 정보를 작성한 파일도 Github에서 공개됩니다.
그런 때에, 이
.gitignore
가 소중하다는 것을 깨달았으므로 정리하려고 생각했습니다 (지금까지는 누군가가 .gitignore
를 항상 만들고 있었으므로 특히 의식하고 있지 않았습니다..).절차
단순히 루트 디렉토리 아래에 .gitignore
라는 파일을 만들고 Github
에 넣지 않거나 git
로 추적하지 않으려는 파일을 지정합니다. 그 전에 파일을 이미 푸시 한 경우 git rm -r --cached ファイル名
라는 명령을 사용하여 git에서 지정된 파일을 제외합니다.
구현
CakePHP 기반 앱의 temp/cache
폴더를 제외합니다.
현재 상태
확실히 cache
가 Github에서 확인할 수 있습니다 (본래라면 아웃..).
Step1 : git rm -r --cached 파일 이름으로 git에서 지정된 파일 제외
다음은 실제 실행 결과입니다.
git status
를 보면, 제대로 untrack 된 것처럼 쓰여져 있습니다.
Step2 : .gitignore를 루트 디렉토리 아래에 만들고이 temp / cache를 무시하도록 다음과 같이 설명
이하, 실제의 실행 동작입니다.
내 경우에는 이미 .gitignore
를 만들었지만 실행하는 명령은 기본적으로 동일합니다. 동영상에 있듯이 마지막으로 변경한 내용을 commit
합시다.
Step3: git push에서 Github에 반영
Push합니다. 다음은 실제 실행 결과입니다.
구현 후
tmp/cache
폴더가 Github에서 사라졌는지 확인할 수 있습니다.
한편 로컬에서 폴더를 보면 tmp/cache
폴더가 사라지지 않았는지 확인할 수 있습니다. 즉 서버 정보를 올린 파일 등은 로컬에만 보관할 수 있습니다.
추가
※ @htsign 님으로부터 지적이 있었습니다만, git rm -r --cached ファイル名
그럼, 최신의 커밋으로부터 밖에 파일이 삭제되지 않습니다. 그래서 다음과 같이 과거의 커밋 이력을 보면 삭제한 파일이 보통으로 존재하게 됩니다.
이 파일 정보를 표시하고 싶지 않은 경우, git filter-branch
등의 커멘드로 과거 히스토리로부터도 파일을 삭제할 필요가 있습니다.
Git 리포지토리에 있는 파일을 기록별로 지우는 방법? 을 참고로, 실제로 지워 봅니다.
다음은 실제 실행 결과입니다.
그런 다음 git gc --aggressive --prune=now
에서 리포지토리를 최적화합니다.
이대로 Push하면 커밋 정보에 충돌이 있는 탓인지 거절됩니다.
git push -f
에서 강제로 푸시합니다.
잘 작동했습니다.
※팀에서 개발을 실시하는 경우, 이러한 강제적인 Push를 실시할까는, 신중하게 검토합시다.
마지막으로
이상, .gitignore
의 움직임에 대해 정리했습니다.
참고:
htps : // m / y_ 미노와 / ms / 3d8513dc31c1b378 0d
htps : // m / go _ st r / ms / 6 / 39d3 / b16 8094496c
h tps : // s t c ゔ ぇ rf ぉ w. 코 m / 쿠에 s 치온 s / 6403601 / 프 rg g-f-f-ro-m-t-re-po-u-d-una b-o-c-re-w-w 쿠 p
Reference
이 문제에 관하여(.gitignore로 로컬에 파일을 남기면서 git에 올리지 않는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/norifumi92/items/da0886cee22a3be567f5
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
CakePHP 기반 앱의
temp/cache
폴더를 제외합니다.현재 상태
확실히
cache
가 Github에서 확인할 수 있습니다 (본래라면 아웃..).Step1 : git rm -r --cached 파일 이름으로 git에서 지정된 파일 제외
다음은 실제 실행 결과입니다.
git status
를 보면, 제대로 untrack 된 것처럼 쓰여져 있습니다.Step2 : .gitignore를 루트 디렉토리 아래에 만들고이 temp / cache를 무시하도록 다음과 같이 설명
이하, 실제의 실행 동작입니다.
내 경우에는 이미
.gitignore
를 만들었지만 실행하는 명령은 기본적으로 동일합니다. 동영상에 있듯이 마지막으로 변경한 내용을 commit
합시다.Step3: git push에서 Github에 반영
Push합니다. 다음은 실제 실행 결과입니다.
구현 후
tmp/cache
폴더가 Github에서 사라졌는지 확인할 수 있습니다.한편 로컬에서 폴더를 보면
tmp/cache
폴더가 사라지지 않았는지 확인할 수 있습니다. 즉 서버 정보를 올린 파일 등은 로컬에만 보관할 수 있습니다.추가
※ @htsign 님으로부터 지적이 있었습니다만, git rm -r --cached ファイル名
그럼, 최신의 커밋으로부터 밖에 파일이 삭제되지 않습니다. 그래서 다음과 같이 과거의 커밋 이력을 보면 삭제한 파일이 보통으로 존재하게 됩니다.
이 파일 정보를 표시하고 싶지 않은 경우, git filter-branch
등의 커멘드로 과거 히스토리로부터도 파일을 삭제할 필요가 있습니다.
Git 리포지토리에 있는 파일을 기록별로 지우는 방법? 을 참고로, 실제로 지워 봅니다.
다음은 실제 실행 결과입니다.
그런 다음 git gc --aggressive --prune=now
에서 리포지토리를 최적화합니다.
이대로 Push하면 커밋 정보에 충돌이 있는 탓인지 거절됩니다.
git push -f
에서 강제로 푸시합니다.
잘 작동했습니다.
※팀에서 개발을 실시하는 경우, 이러한 강제적인 Push를 실시할까는, 신중하게 검토합시다.
마지막으로
이상, .gitignore
의 움직임에 대해 정리했습니다.
참고:
htps : // m / y_ 미노와 / ms / 3d8513dc31c1b378 0d
htps : // m / go _ st r / ms / 6 / 39d3 / b16 8094496c
h tps : // s t c ゔ ぇ rf ぉ w. 코 m / 쿠에 s 치온 s / 6403601 / 프 rg g-f-f-ro-m-t-re-po-u-d-una b-o-c-re-w-w 쿠 p
Reference
이 문제에 관하여(.gitignore로 로컬에 파일을 남기면서 git에 올리지 않는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/norifumi92/items/da0886cee22a3be567f5
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
이상,
.gitignore
의 움직임에 대해 정리했습니다.참고:
htps : // m / y_ 미노와 / ms / 3d8513dc31c1b378 0d
htps : // m / go _ st r / ms / 6 / 39d3 / b16 8094496c
h tps : // s t c ゔ ぇ rf ぉ w. 코 m / 쿠에 s 치온 s / 6403601 / 프 rg g-f-f-ro-m-t-re-po-u-d-una b-o-c-re-w-w 쿠 p
Reference
이 문제에 관하여(.gitignore로 로컬에 파일을 남기면서 git에 올리지 않는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/norifumi92/items/da0886cee22a3be567f5
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(.gitignore로 로컬에 파일을 남기면서 git에 올리지 않는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/norifumi92/items/da0886cee22a3be567f5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)