Git]gitignore 사용법(gitignore.io) - Java/IntelliJ

손지민·2023년 12월 4일
2

GitHub

목록 보기
8/12

개요

  • gitignore를 통해 git에 올리지 않을 파일을 설정합니다.
  • 이미 올라간 보안 파일을 삭제하고, 앞으로 안올라가게 설정하는 법을 알아보겠습니다.
  • gitignore.io 를 사용하면 기본적으로 세팅을 해주고, 추가할 것은 추가하면됩니다.

    공부 중에 여기저기 블로그를 참고한 자료들 중 제가 필요한 자료, 도움이 됐던 자료를 올리고있습니다. 틀린 내용, 수정 사항, 의견, 질문이 있으시면 댓글 달아주시면 감사하겠습니다.

Git 에 올리면 안되는 상황

  • 보안상 올리면 안되는 파일
  • 용량이 100MB를 넘어가는 경우. (GitHub은 100MB가 넘는 파일을 올리지 못 한다.)
  • 내려받을 프로젝트에 불필요한 파일인 경우. ([예시] node_modules 같은 파일은 GitHub에 저장하여 공유하는 것이 아니고, package.json 파일을 통하여 node_modules 파일들을 세팅에 맞게 불러온다.)

목차

  1. gitignore.io 사용
  2. gitignore 규칙/문법
  3. Git에 이미 올린 파일 지우고 올리는 법 - gitignore에 작성했는데 적용 안될 때
  4. 그 외 팁(IntelliJ에서 파일 색 구분)
  5. 참고

gitignore

1. gitignore.io 사용

사용법은 간단하나 어떤 항목을 추가해야하나에 대한 고민이 있었습니다.
그 때 gitignore.io 를 사용합니다.

  1. 사용 언어/IDE/OS 정도 추가하는 것 같습니다.
    • 저는 Java/IntelliJ/Windows 라서 아래와 같이 추가했습니다.
      - Gradle, Java, Windows, macOS, Intellij, Intellij+all
      - macOS는 혹시 나중에 추가로 들어오는 분이 있을 수도 있어서 그냥 추가해뒀습니다.
      - IntelliJ+all 은 뭔지 모르는데 다른 분 블로그에서 추가하셨길래 추가했습니다.
  2. 생성 버튼을 누르면 아래와 같은 gitignore에 붙여넣을 내용을 만들어줍니다.
  3. 전체 ctrl+A ctrl+c 해주고 IDE에서 gitignore 파일에 붙여넣기만 해주면 끝!

2. gitignore 작성법

2.1. gitignore 규칙/문법

  1. 특정 파일을 제외하는 경우.
    파일명.확장자
    ex) application.properties 추가해주면 안 올라감.
  2. 특정 확장자 파일을 전체 다 제외하는 경우.
    *.확장자
  3. 예외처리를 만드는 경우.
    !파일이름.확장자
  4. 현재 .gitignore가 있는 폴더 경로에 존재하는 파일을 제외하려는 경우.
    /파일명.확장자
  5. 원하는 경로의 하위 폴더 또는 파일들 제외하려는 경우.
    폴더/파일.확장자
  6. 원하는 경로 하위 아래에서 원하는 파일들을 모두 제외하는 경우.
    폴더/**/파일이름.확장자
  7. 특정 폴더 안에 존재하는 파일들 모두 제외하는 경우.
    폴더/

3. Git에 이미 올라간 파일 지우고 올리는 법 - gitignore에 내용을 추가했는데 적용 안될 때

3.1. CMD 명령어

$ git rm -r --cached .
//현재 디렉토리 기준 스테이징 된 파일을 모두 비움
$ git add .
//현재 디렉토리 기준 .gitignore가 적용된 작업트리를 다시 스테이징 시킴
$ git commit -m ".gitignore 파일 트랙킹하지 않도록 수정"
//커밋 메세지와 함께 새롭게 커밋 함
$ git push
//위의 커밋을 원격 저장소로 push함
  • <문제발생>
    • CMD 에서 위와 같이 명령어 치다가 git push 에서 remote 오류나서 다시 IntelliJ로 push 하니까 됐습니다.

3.2. <추가 개념> 삭제 명령어

rm [fileName]

  • git을 사용하지 않는 rm은 작업 디렉토리에서 파일을 삭제하는 명령어이다.

git rm [fileName]

  • git을 사용한 rm은 작업 디렉토리와 스테이징 영역에서 파일을 삭제 시킨다.

git rm --cached [fileName]

  • 이 명령어는 파일을 Git의 추적에서 제거하고, 새로운 커밋에서 해당 파일이 더 이상 포함되지 않도록 합니다.
  • 단일 파일을 대상으로 합니다.

git rm --cached -r [filname]

  • 만약 [fileName]이 디렉터리일 경우, 해당 디렉터리와 그 안에 있는 모든 파일 및 서브디렉터리를 추적에서 제거합니다.

git add [fileName]

  • 해당 파일에 대해 스테이징한다.

git add .

  • 현재 디렉토리에서 수정/생상/삭제된 파일에 대해 스테이징한다.

git commit -m "[message]"

  • 커밋 메세지와 함께 커밋한다.

4. 그 외 팁(IntelliJ에서 파일 색 구분)

  • 흰색
    저장소에 올라간 후에 어떠한 수정도 없는 상태. (저장소에 올라간 파일과 똑같은 상태)
  • 노란색
    .gitignore 파일을 통해 제외한 파일들
  • 빨간색
    저장소에 존재하지 않는 파일.
  • 파란색
    저장소와 내 컴퓨터에 있는 파일인데 "수정"된 상태. (즉, 저장소에 올라간 파일과 내 컴퓨터에 있는 파일의 내용이 다른 상태)
  • 초록색
    Git에 commit만 하고 push는 하지 않은 상태. (push하면 흰색으로 바뀐다.)

참고

profile
Developer

0개의 댓글