jc.jang

깃에서 필요없는 걸 빼주고 싶을 때 gitignore 본문

카테고리 없음

깃에서 필요없는 걸 빼주고 싶을 때 gitignore

jangstory 2018. 6. 18. 12:07

깃은 참 유용한 버전 관리 시스템입니다. 오늘 새로 알게 된 gitigonre에 대해 소개하겠습니다.


저는 평소에 GitHub Desktop 프로그램을 이용해 github를 관리하는데, 이 프로그램이 알아서 코드 수정한것도 감지해주고 커밋하고 싶으면 커밋 메시지만 적어서 버튼만 몇번 누르면 커밋을 해주었습니다. 그런데 최근에 git bash를 알게 되었고 cmd에서 하는 것도 알게 되었습니다.


git add, git commit -m 등등 을 사용하게 되었는데, 코딩하고 커밋하고 코딩하고 커밋하다가 이런 일이 발생했습니다.


git에 특정 파일을 올리고 싶지 않다.


예를들어, 사용자 정보가 담긴 database파일처럼 다른사람이 접근하면 안되는 파일이 있을 텐데, 나는 지금까지 GitHub Desktop이나, git bash에서 add, commit만 하니까 특정 파일을 올리지 않는 방법을 생각해봐야 했습니다.


가장 처음에 드는 생각은 파일을 하나하나 올리는 것이었는데, 이건 상당히 비효율적이죠. 어떤 파일을 올리지 않을 것인지 항상 생각해야하고 올릴 파일이 많다면 일일이 다 올려야하니까 상당히 비 효율적인데, 이를 위해 gitignore라는 기능이 있습니다.


이에 대해 소개해보겠습니다.


먼저


git status


를 통해 newfile, modified 등을 확인해봅시다.


그리고 만약 db.sqlite3라는 파일(django에서 db를 관리하는 파일)을 빼고 싶다면


git reset HEAD db.sqlite3


라고 입력하면 됩니다.



git status


를 통해서 db.sqlite3가 Untracked files에 있는 것을 확인하실 수 있습니다.


근데, db파일이 계속 바뀐다면, commit할 때 마다 git reset HEAD db.sqlite3라고 치는건 상당히 번거롭습니다. 그래서 특정 파일을 stage에 올리지 않는 방법을 소개하겠습니다!


바로 .gitignore파일을 만드는 것 입니다.


주의 할 점은 디렉토리의 최상위에 이 파일을 만들어야 하는 것입니다.


'coding-for-web' 이란 폴더를 git에 올렸으면, 이 폴더 바로 밑에다가 만들어야한다는 말입니다.


.gitignore라는 파일을 만들고 여기에 깃이 무시하는 파일 리스트를 적어 줍시다.


.gitignore를 열어서



db.sqlite3


라고 입력해주면 끝입니다.



git status


를 통해 확인해보면 Untracked files에 .gitignore가 있고, db.sqlite3는 없는 것을 볼 수 있습니다.


자 이제 이 .gitignore 파일을 커밋해주면 db.sqlite3파일이 바뀌더라도 git에 올라가지 않도록 할 수 있습니다.



git add .gitignore

git commit -m "Add .gitignore"


Comments