React 작업을 하면서 Git에 push 할때마다 오류가 뜸
- .eslintcache : CRA 를 만들면 자동으로 생기는 CRA번들
- node_modules/.cache/.eslintcache 에서 Git이 업데이트 될 때 최신화를 해주는데 같이 최신화를 할 것이냐고 물어보는것이다 캐시기록은 필요가 없으므로 gitignore를 이용해서 속도를 향상시키자
//gitignore 파일에 .eslintcache를 넣어주자
.eslintcache
하지만 이 방법으로도 git에 업데이트가 된다면
gitignore 에 .eslintcache 를 다시 넣어주고
//캐쉬를 삭제 해주고
git rm -r --cached .
//다시 푸시를 해봅니다
git add -> commit -> push
reset 명령어를 통해 작업을 취소 시킬 수 있다.
reset 명령어의 옵션
- soft : index 보존(add한 상태, staged 상태), 워킹 디렉터리의 파일 보존. 즉 모두 보존.
- mixed : index 취소(add하기 전 상태, unstaged 상태), 워킹 디렉터리의 파일 보존 (기본 옵션)
- hard : index 취소(add하기 전 상태, unstaged 상태), 워킹 디렉터리의 파일 삭제. 즉 모두 취소.
git reset --soft HEAD^
--soft 옵션을 사용하였으므로, 수정한 내역은 그대로 두고 head는 한단계 위로 조정을 한다는 의미입니다. commit을 취소하는 것이죠
--hard 옵션을 사용하게 되면 지금까지 작업하던것들이 다 날아가므로, 조심합시다
git reset --hard @^
hard를 이용하여 HEAD로 돌리는 명령어 입니다.
@는 1.8.4부터 도입된 HEAD의 동의어라고 합니다. 같은걸로는 @^, @~1, @~ 가 동일합니다.
git reset --hard ORIG_HEAD
git reset --merge ORIG_HEAD
ORIG_HEAD라고 하는것은 이전에 작업한 곳의 HEAD입니다.
즉. pull 이나 merge를 하는 경우에 ORIG_HEAD를 남기게 되는데, pull을 잘못 받거나 merge를 잘못하게 되면 이것을 이용합니다.
git reset HEAD
즉 default인 mixed를 이용하여 HEAD로 돌아가게 하는 방법입니다.
위에 넣은것처럼 @^도 동일합니다. @~1도 되겠죠.
많은 양은 아니지만 조금씩 사용하면 좋은 부분들도 있으니 잘 작업해 봅시다.
단. 작업할때는 항상 branch를 이용하는것을 추천합니다.
만약 push를 하였을 경우에 commit을 조금이라도 지저분하지 않게 하기 위해서는 브랜치에서 해야지 force push를 할 수 있기 때문입니다.