본문 바로가기

iOS

.gitignore

728x90

.gitignore 파일을 프로젝트에 적용하기 전에 !! 먼저 이 파일이 무엇인지 알아보자.

 

.gitignore 파일이란?

간단하게 말하면 불필요한 파일이 remote에 즉, 레포지토리에 올라지 않게 만들어주는 파일이다. 

여기서 말하는 불필요한 파일에는 파일 백업 정보, 제품 빌드 정보, .DS_Store (메타 데이터가 저장되어 있는 파일) 등을 예로 말할 수 있다. 이러한 파일들은 굳이 remote에 업로드가 될 필요가 없기 때문에 올라가지 않도록 하는 것이다.

 

또한, 이러한 파일들로 인한 혹시라도 발생할 수 있는 데이터 충돌을 막을 수 있다.

그렇기 때문에 혼자서 작업할 때도 필요하지만, 협업 시에는 초기 세팅 과정에서 .gitignore를 작성해서 레포에 푸시하는 것이 좋다.

 

xcode project를 처음 github에 푸시할 때 .gitignore를 세팅해서 같이 올려주면 큰 문제가 발생하지 않는다. 그러나, 초반에 .gitignore를 세팅하지 않고 xcode project를 github에 올린 경우라면 추후 remote repository를 위한 추가 설정들이 필요하다.

(= 초기 세팅할 때 까먹지 말고 추가하자.)

 

그렇다면 어떻게 작성할 수 있을까요?

방법은 크게 두 가지가 있다.

 

터미널을 통해서 작성 

먼저 터미널을 통해서 작성하는 방법이다. (흔한데 오래걸리는 작업)

 

.gitignore 파일 생성

  • .gitignore의 파일의 구성
    • 파일을 열어서 살펴보면 영어로 가득한 파일이란 것을 확인할 수 있다. 
    • 실제로는 직접 리모트에 올리지 않을 내용을 작성하는 것이 맞지만, 아래의 사이트를 통해서 자동으로 완성된 코드를 복사-붙여넣기 할 수 있다.
    • 아래의 링크로 들어가셔서 검색창에 세 개의 태그(Swift, CocoaPods, Xcode)를 입력한다.
      gitignore.io
    • 생성된 코드를 복사한 다음, 로컬 폴더로 이동한다.
    • 이동한 뒤, 아래의 순서대로 작업을 진행한다. 
      1. vim .gitignore 명령어를 입력하시고
      2. i를 눌르셔서 입력모드로 바꿔주신 후에
      3. 아까 복사해놓은 코드를 붙여넣기 한다. 
      4. 그리고 밑에 .DS_Store도 함께 작성한다.
      5. esc 누르신 후에 :wq! 를 누르시면 저장됨과 동시에 vim command line이 종료가 된다.
    • 그리고 로컬폴더를 확인하면, .gitignore 파일이 보이지 않는데 이는 숨김 파일이기 때문이다. 
    • command + shift + .(마침표) 를 눌러주시면 폴더 안에 파일이 잘 생성되어 있는 것을 확인할 수 있다. 
      (그래도 제대로 확인하고 싶다면, 터미널에서 cat .gitignore 명령어를 입력하면 된다.)

remote repository에 푸시

  • .gitignore 파일을 잘 생성했다면, 레포에 푸시하며 된다. 
  • 푸시 과정은 아래와 같다. 
    1. git add .
    2. git commit -m 'commit message'
    3. git push origin main

 

Xcode에서 작성 

이번에 싹을 통해서 알게 된 새로운 방법이다. (이 방법을 진작에 알았으면 좀 더 편하게 세팅을 할 수 있었을텐데 ..)

 

1. 먼저 빈 파일을 만든다.

이 때 주의할 것은 빈 파일을 만드는 위치이다. 프로젝트 바로 아래에 만든다.

파일 위치 확인

위의 위치에서 command + n 을 눌러서 파일을 아래와 같이 만든다.

Empty 파일 생성

 

2. 파일 명은 .gitignore로 설정한다.

파일 명 설정

그러면, 아래와 같이 알림창이 나타나게 되는데, 이는 .으로 시작하는 파일의 경우 숨김 처리가 될 것인데 그래도 진행할 것인지 물어보는 것이다. .gitignore의 경우 숨김 처리가 되는 파일이므로 그대로 Use "."을 누른다.

 

3. .gitignore에 숨기고 싶은 파일 명을 작성한다.

앞서 말한 APIKey와 같은 사용자의 중요한 정보를 담고 있는 파일을 숨기게 될텐데 이를 생성하기 전에 먼저 숨기고 싶은 파일의 이름을 .gitignore에 작성한다.

 

위와 같이 작성을 한 뒤에 같은 이름의 파일을 만들고 작업을 진행하면 된다.

 

4. .작성한 파일을 생성하면 Git에 반영되지 않은 것을 확인할 수 있다. .gitignore로 설정된 파일의 경우 추후 경로가 이동되더라도 .gitignore 상태가 유지된다. 

 

- 위와 같이 파일을 숨김 처리해도 되고,

- 폴더 자체를 숨기고 싶을 때는 폴더의 경로를 작성하면 된다. 

 

위의 APIManager 폴더의 ImageSearchAPIManager 파일과 다르게 새로 추가 되었음에도 git에 반영되지 않는 것을 확인할 수 있다.

 

 

만약 이미 작업한 프로젝트를 푸시를 했고, 이후에 적용을 하고 싶다면? 

이미 푸시를 했다면, 깃에서 해당 파일들을 트래킹 하고 있기 때문에 이를 제거해야 한다. 

(리모트 파일을 제거한다는 의미가 아님!!)

 

과정은 아래와 같다.

  • 먼저 위의 과정과 똑같이 .gitignore를 작성하고 저장한다.
  • 그리고 레포에 푸시를 하기 전에 한 가지 코드를 추가해서 입력하면 된다.
  • git rm -r --cached .
    (-> 캐시에 등록된 트래킹 중인 파일들을 삭제하는 명령어)
  • 이후에는 마찬가지로 
    • git add .
    • git commit -m 'commit message'
    • git push origin main 
  • 을 입력하면 된다. 

 

 

'iOS' 카테고리의 다른 글

APIManager  (1) 2022.08.08
Pagenation  (0) 2022.08.05
프로토콜 - Basic To Advanced  (0) 2022.08.03
Network - 가볍게  (0) 2022.08.02
SSAC - 다마고치 프로젝트 피드백 정리  (0) 2022.08.02