이번 프로젝트를 진행하면서 Git을 정말 많이 활용했다. 그리고 실수도 정말 많이 했다. 사용을 하다보면 거의 쓰는 기능들만 쓰는 것 같다. 그래서 다음엔 까먹지 않으려고 작성한다. 나를 위한 레시피~~
우리는 기능을 구현하거나 버그를 수정할 때 issue를 등록하고 issue번호와 동일한 branch를 생성해서 작업하고 머지하는 식으로 작업을 했다. 그런데 작업을 하다보면 정말 자주 원하는 branch가 아닌 다른 branch에서 작업을 한 경우가 많았다. 심지어 add, commit도 한 적이 있다. 그래서 상황별로 명령어를 알아보자
작업한 내용을 아직 add commit을 안했을 때는 실수한 branch에서 git stash
를 입력하고 원하는 branch로 이동한 후 git stash pop
을 하면 된다. 그러면 stash stack을 이용해 작업 내용을 옮기는 방법이다. 아마 다른 방법들도 많이 있을 거라고 생각된다. 좋은 방법이 있다면 댓글로 부탁드립니다 !!
체리픽이라는 기능이 있다. 원하는 커밋만 쏙 빼서 가져오는 것이다. 원하는 branch에서 실수한 branch의 커밋을 가져온다. 명령어는 git cherry-pick {커밋 해시값}
이다. 근데 이거는 실수한 branch에서 commit이 남아있더라 그래서 그 commit을 지워줘야한다.
안드로이드 개발을 하는데 pull이 안된다. error: The following untracked working tree files would be overwritten by merge:
오류가 발생한다.
sourcetree
에서 폐기를 하려고해도 끈질기게 남아있다.
이럴 때 해결법 clean -d -f -f
입력하면 문제가 되던 녀석이 remove된다.
로컬 스토리지에 캐시로 인증 정보를 저장하는 방식을 선택했다. 요즘은 SSH key 방식을 많이 사용하는 듯 하다.
git config --global user.name
를 입력하고 로그인 할 때 사용하는 이메일을 입력한다.
git config --global user.password
를 입력하고 로그인 할 때 사용하는 비밀번호를 입력한다.
--global을 제거하고 원하는 저장소의 root 에서
git config user.name
과 같이 입력하면 해당 저장소에서만 사용할 인증을 설정할 수 있다.