프로젝트 - 담타/etc.

git clean -fdx 하고 잠못자기

uzzam 2023. 1. 6. 20:05

스플래시 이미지 추가는 되게 간단하네? 추가하고 앱 배포하고 자야지 하다가 git clean -fdx와 함께 잠 못 잔 이야기

 

스플래시 스크린 추가하기

flutter_native_splash 패키지를 사용한다.

앱이 실행되고 플러터를 로드하는 동안에 빈 시간을 네이티브 단에서 채워준다고 보았다.

플러터 내에서 스플래시 스크린 위젯을 만들어서 표현하면 절대 채울 수 없는 부분이다.

yaml 파일을 업데이트하고 명령어를 입력하면 끝이다.

# 생성
flutter pub run flutter_native_splash:create

# 삭제
flutter pub run flutter_native_splash:remove

# 수정시에는 삭제 후 생성한다.

단 안드로이드 12에서는 메커니즘이 약간 바뀌어서 뭔가 더 해주어야한다.

특히 flutter 2.5 버전 전에 프로젝트를 만들었던 사람이라면 마이그레이션을 해주어야 한다.

결국 어찌 보면 이걸 늦게 찾아서 생긴 일이다.

아래 두 개 참고하기

- https://docs.flutter.dev/development/ui/advanced/splash-screen#migrating-from-manifest--activity-defined-custom-splash-screens

- https://docs.flutter.dev/development/platform-integration/android/splash-screen-migration

 

사건의 시작

담타 프로젝트 관리하기 1 - github flow 적용하기

 

담타 프로젝트 관리하기 1 - github flow 적용하기

이 글은 2022년 8월 27일에 첫 작성되었습니다. (https://github.com/shs395/shs395.github.io/blob/master/content/project/damta-gitflow/index.md) 도입배경 위젯 기능을 개발 중 master 브랜치에서 작업하다가 날려먹기도 하

uzzam.dev

이전에 정해놓은 대로 새로운 기능을 만들 때면, 브랜치를 만들어서 작업을 한다.

혼자 하는 프로젝트이지만 이렇게 하는 이유는 연습의 의미도 있지만 확실히 편하다.

예를 들어 연습장(브랜치)에 낙서를 정말 막 하다가도 찢어서 버리면 원래 쓰던 것(마스터)이 되듯이, 아무 부담 없이 브랜치를 만들고 이상하면 날려서 원상 복구하는 것을 많이 했다.

그래서 이번에도 12/add-splash-screen이라는 브랜치를 만들어서 작업하다가 master로 돌아갔고, untracked 된 파일들이 남아서 git clean -fdx를 썼다.

사실 git 명령어를 전부 외워버렸거나, 잘 이해하고 있었다면 아마 이런 일은 안 일어났을 것이다. 하지만 내 기억력은 좋은 편이 아니라 매번 구글에 검색했고, 최신사항은 모두 커밋되어있기 때문에 날아갈 게 없을 거야라는 안일한 마음으로 사용했다.. 

https://extbrain.tistory.com/83  이 블로그를 참고했는데 지금 보니 빨간색으로 경고까지 써있다..

하여튼 git clean -fdx를 하니 뭐 gitignore이 적용되어 있어 커밋되지 않은 파일들까지 다 날아가버렸다.

그 순간 뭔가 잘못되었음을 느끼고 삭제된 파일들을 전부 스크린샷 찍어놨다..

날아간 채로 빌드를 해보고 싶었는데, 괜히 더 꼬일까 봐 파일들이 사라진채로 해결법을 찾아보았다.

 

해결과정

해결법이 완전 없지는 않았다.

https://stackoverflow.com/questions/6267180/can-i-restore-deleted-files-undo-a-git-clean-fdx

 

Can I restore deleted files (undo a `git clean -fdx`)?

I was following the instructions on making github pages, and forgot to move down into my git sub directory. As a result, I just nuked an entire directory of documents with git clean -fdx. Is there ...

stackoverflow.com

이런 사람들이 꽤 있었고,

내가 해볼 만한 건 두 가지였다.

- 맥의 Time Machine 기능을 이용하기

- IDE의 local history 기능을 이용하기

등등 시도해보았으나 딱히 되는 건 없었다.

그래서 그냥 에이 모르겠다 하고 flutter pub get 후 빌드해보았는데 다행히 사라진 파일들은 거의 복구되었다.

ios에서는 잘 실행되었고 안드로이드는 key.properties 파일만 복구가 안되었다.

이게 참 중요한데 다행히 이 파일이 예전에 중요하다고 해서 비밀번호 관리자에 백업해 놨었다.

 

느낀 점

어떤 상황이 일어날지 모르니 코드뿐 아니라 무엇이든 백업을 잘하자..

그래도 개인프로젝트에서 이런 일이 있어서 다행이다.

그래도 나는 staging area에는 잘 올리는 편이니 다음엔 git clean -fd를 사용하자.

그리고 n 키워드를 붙여서 미리 어떤 게 삭제될지 보는 것도 좋다. (git clean -fdn)