- push가 됐으면 reset은 잊어버리자. 다른 사람들의 기억들까지 잊게 할 수는 없다.
- revert를 해서 실수의 이력을 남기고 실수한 것을 수정 후 다시 커밋을 하는 것이다.. 한마디로 똥 싼 사람이 똥을 치워서 깨끗하게 만들어서 다른 사람들이 깨끗히 쓸 수 있게 하는 것(?)
- 정리 reset : 혼자서 작업하다 실수 했으면 reset, revert : push를 한것을 인정해버려서 commit을 하고 기록을 남겨놓는다. 즉, 되돌리는 것 조차도 기록으로 남겨놓는 것. 이게 왜 중요하냐면 나 혼자서 reset 해서 잘 마무리해놓고 push 해버리면 결국에는 남들과 소스를 통합하면 100% conflict 가 생기게 되는데 서로 고치려고 하는 것 보다 차라리 다 같이 실수해서 한번에 고치는게 훨씬 수월하고 나은 방법인 것이다.
13. 브랜치를 이용하자.
브랜치란? 가지를 의미한다.
자동차를 생각하면 된다. master 는 완벽히 판매할 수 있는 자동차 하나를 의미한다.
그렇다면 branch란? 이 완벽한 자동차 하나를 만들기 위한 부품 하나하나라고 생각하면 된다.
자동차 한개(master)를 만들기 위해서 자동차 몸체(branch), 문짝(branch), 바퀴(branch)...라고 생각하면 된다.
14. branch
git branch : 현재 내 branch가 몇개인지 그리고 지금 현재 내가 어떤 branch 인지 확인을 할 수 있다.
git branch 이름 : branch 를 만들지 않았으면 *master 하나만 나오는데 branch june 이렇게 하면 june 이라는 branch가 만들어진다.
git checkout 이름 : git checkout june 이라고 하면 방금 만든 june 이라는 브랜치로 선택된다. 스위칭된다라고 표현할 수 있다.
git branch -D 이름 : 브랜치 삭제
15. 병합하기 (merge & rebase)
master 가 있고 branch develoment 를 만들었다.
총 2개의 상태인데 master 에서 develoment 의 수정사항을 합쳐야한다.
git branch 를 입력 현재 branch 가 뭘로 선택되어 있는지 확인한다. master인게 확인이 됐으면..
git merge develoment 를 입력하면 된다.
만약 충돌이 일어나면 코드를 수정하고 commit 을 한다.
git rebase
16. master 에서 다른 브랜치를 가져올 때 필요없는 것은 제외하고 가져오고 싶을 때.
가져오고 싶은 commit된 아이디를 알고 있어야한다.
git cherry-pick 아이디번호
17. 임시 저장.
임시저장 : git stash
임시저장 목록 : git stash list
임시저장 삭제 : git stash drop
다른 branch 로 넘어가고 싶거나 할 때 사용하면 좋다.
임시저장한 것을 다른 branch 에 적용해도 된다.
18. merge + fetch = pull
fetch 는 언제 사용하나?
pull 을 하면 로컬 이력이 다 바뀐다. fetch를 함으로 원격과 로컬을 비교해보는 용도로 사용한다.