본문 바로가기

개발 Note/git

[git] commit되어있는 파일의 변경 사항을 무시하는 방법

반응형

 

안녕하세요.

 

git을 사용하다보면, .gitignore 를 이용하여 파일을 무시하도록 하는 경우가 많은데요.

간혹 git에는 파일을 올려 놓아야하는데, 내용은 로컬에서 변경해서 사용해야 하는 경우들이 있습니다.

 

대표적으로, .env 같은 파일이죠.

 

보통은 .env는 .gitignore에 추가해서 git에는 파일 자체를 올려놓지 않습니다.

 

그러나 flutter의 dotenv 같은 package를 사용한다거나 하는 경우,

.env를 asset으로 올려놓고 사용해야 합니다. 물론 보안상 문제가 있습니다.

그래서 .env를 사용하지 말아야 하나 어쩔수 없는 경우들이 있겠죠?

 

이걸 논하고자 하는것이 아니라 넘어가도록 하고요.

이런경우, git에 더미파일로 .env파일을 만들어서 올려놔야 git action같은 자동화 빌드를 할때 에러 없이 무사히 통화 하게 됩니다.

 

.env 파일에 아래와 같이 더미로 내용을 채워서 올려놓게 되죠.


SUPABASE_URL = "my url"
SUPABASE_ANON = " my key"

 

하지만 이미 git에 파일이 올라가 있기 때문에, 로컬에서 수정하게되면 항상 changed로 표시가 되게 됩니다.

만약 실수해서 commit을 하게 되면, 실제로 사용하는 url과 key가 git에 노출되어버리게 되죠.

 

git update-index --skip-worktree

이럴때 사용할 수 있는 것이 git update-index --skip-worktree 입니다.

$ git update-index --skip-worktree <file path>
즉,
$ git update-index --skip-worktree .env

 

이렇게 해놓으면 git에서 해당 파일에 대한 수정 사항을 추적하지 않습니다.

이를 되돌리려면 --no-skip-worktree 옵션을 사용하면 됩니다.

 

 

 

그럼

해피코딩!!!