git의 연결이 꼬였을 때

Siwoo Pak·2021년 7월 14일
0

Git

목록 보기
4/7

1 .gitignore

  • 파일에 기록된 경로 및 파일들을 제외하고 github에 push 해주는.

2 .gitignore 작성 실수로 인해 발생하는 문제의 3가지 패턴과 그 해결법

  • 이미 모든 파일을 git이 추적중인 경우
  • 이미 추적중인 파일 몇개만 무시하고 싶은 경우
  • 반대로 .gitignore에 있었던 파일을 다시 추적하고 싶은 경우

2.1 이미 모든 파일을 git이 추적 중인 경우

  • 일단 무시할 파일을 제외하고 commit 해줌.
  • 루트 폴더로 이동
$ git rm -r --cached .
  • git rm 옵션들
    • -r: recursive removal의 약자로, 폴더 안에 다른 파일이 있을경우 그 폴더를 지우지 못함. 그래서 폴더를 지우기 전에 안에 있는 내용을 반복적으로 비워주고 지워주는 옵션
    • --cached: staged 영역에서 되돌려주는 옵션. 이 옵션 사용시 git에 있는 인덱스 파일만 삭제하고 실제파일은 삭제되지 않음.
  • 위의 과정으로 모든 파일들의 git의 indexrk chrlghk
  • 모든 파일에 대해 .gitignore가 다시 적용됨.
$ git add -A
$ git commit -m "gitignore 다시 적용"
$ git push origin branch명

2.2 이미 추적 중인 파일 몇개만 무시하고 싶은 경우

  • 주로 원래 .gitignore를 사용하던 중에 추가적으로 명시한 경우 발생하는 에러
  • 해결법
    • .gitignore파일 안의 제대로 명시되어 있는지 확인
    • 현재 상태에서 무시할 파일을 제외하고 commit
    • 루트 폴더로 이동
    $ git rm -r --cached 파일명1 파일명2 ...
    • 1번째 상활과 동일하게 git add, commit, push 해 주면
      gitignore에 명시된 것을 제외하고 깃헙에 push되어진 걸 확인할 수 있음.

2.3 반대로 .gitignore에 있었던 파일을 다시 추적하고 싶을 경우

  • .gitignore에 의해서 무시된 파일을 강제로 git을 통해 관리하고 싶은 경우
$ git add -f 파일명
$ git commit -m "무시했던 파일 다시 추적"
$ git push origin branch명

출처: [Git Reference Book](https://git-scm.com/docs/git-rm)
profile
'하루를 참고 인내하면 열흘을 벌 수 있고 사흘을 참고 견디면 30일을, 30일을 견디면 3년을 벌 수 있다.'

0개의 댓글