예거's Bicycle for the mind

[Git] .gitignore 에 특정 파일 추가하는 방법 (UserInterfaceState.xcuserstate 파일 Tracking 제외하기) 본문

Git & Github

[Git] .gitignore 에 특정 파일 추가하는 방법 (UserInterfaceState.xcuserstate 파일 Tracking 제외하기)

유예거 2021. 11. 8. 23:42

1️⃣ 혹시 레포에 .gitignore 파일이 없다면?

깃헙에서 레포를 처음 만들 때 "Add .gitignore" 에 체크하고, templateSwift 를 선택했다면 문제가 없다.

아래 캡처를 보면, 기본적으로 만들어지는 .gitignore 파일 내부에 "xcuserdata/" 가 포함되어 있기 때문이다.

 

 

하지만 혹시나, 깃헙 레포를 만들 때 .gitignore 를 빼먹었다면? 🤔

그래서 UserInterfaceState.xcuserstate 파일 같이 뭔지 모를 파일이 자꾸 터미널에서 Tracking 따라다니며 괴롭힌다면...?

 

https://www.toptal.com/developers/gitignore

 

gitignore.io

Create useful .gitignore files for your project

www.toptal.com

 

위 사이트로 접속해서 키워드를 Swift 로 입력해서 파일을 생성하고 전체를 복사한다.

그리고 아래와 같은 순서로 편집 후 커밋을 올리면 된다!

 

2️⃣ .gitignore 편집 방법

1. 터미널에서 vi .gitignore 입력해서 vi 편집기 실행시킴

2. .gitignore 파일로 들어왔다면 i 또는 a 입력해서 -- INSERT -- 모드(편집 모드) 진입

3. 상단부의 적당한 곳에 ### 제목 ### 표시한 뒤, 엔터로 줄바꿈해주고 깃헙에 올리고 싶지 않은 파일명을 확장자까지 정확하게 입력

4. 다 입력했다면 esc 버튼 눌러서 편집 모드를 벗어난 뒤, :(콜론) 누르고 wq 입력하고 엔터

5. 커밋 후 git push 한 뒤, 깃헙에서 .gitignore 파일 확인해보기

 

(좌) vi 편집기에서 입력 // (우) 깃헙에 올라간 모습

 

3️⃣ .gitignore 에 파일명을 써놨는데도 깃헙에 올라갔다면?

제가 분명 위와 같이 했는데, 깃헙에 저 LearningTests.swift 파일이 푸시된 걸 확인했어요.

 

찾아보니, .gitignore 에 파일명을 써주기 전에, stage 에 올라간 파일들은 캐시가 남아있어 커밋 목록에 뜨는 것이라고 합니다.

캐시를 제거하고 다시 .gitignore 파일을 읽어주기 위해, 해당 디렉토리로 이동 후 아래와 같이 명령어를 써봅시다.

 

// 캐시를 모두 삭제
git rm -r --cached .

// .gitignore 에 입력된 파일 목록을 제외한 다른 모든파일을 다시 트래킹
git add .

// 그 이후에 commit 후 push 하면 된다.

 

(참고) vi 에디터 종료 명령어 3가지

:wq -> 편집한 내용을 저장하고 종료 (write and quit)

:q! -> 편집하던 내용 무시하고 강제 종료

:q -> 종료

 

사실상, 편집을 잘 했다면 :wq 쓰면 되고, 뭔가 실수해서 다시 해야한다면 :q! 로 vi 에디터 빠져나간 뒤, 재시도하면 됩니다.

:q 는 쓸 일이 거의 없겠네요.

 

참고 링크

[git] .gitignore가 적용되지 않을 때(git 캐시 삭제하기)

[iOS/Swift] .gitignore 파일 간단하게 추가하기

'Git & Github' 카테고리의 다른 글

[Git] 자주 쓰는 git 명령어 정리 (Cheat Sheet)  (0) 2021.11.18
Comments