[git] git을 사용하는데 필요한 기본 개념과 기본 용어 정리
[dev] git 다루기 깃 개념 정리 깃을 알고 있다고 생각하고 쓰면서, 평소와 다른 문제가 일어나면서 깃에 대한 개념이 부족하다고 생각되어 찾아 본 내용들을 정리했다. 자세한 내용은 블로그 보다는 Git book 정독하는 것을 추천한다. 기본 사용 플로우 리모트에 있는 소스코드를 받거나(clone), 새로운 프로젝트를 시작한다. 변경사항을 저장(commit)하고, 리모트에 반영(push)한다. 이미 존재하는 소스코에서 독립적으로 작업을 진행해야 하는 경우에는 새로운 브랜치(branch)를 생성해 작업을 한다. 작업이 완료 된 후에, 갈라져 나온 origin branch에 merge되거나 rebase를 한다. Merge and Rebase mrege는 기존 존재하던 브랜치에 병합(merge)하는 기능이다. 기존 브랜치에 작업 내용이 없다면, fast-forward merge를 이용해 병합을 하거나 기존의 브랜치에도 작업 내용이 있다면, 3-way-merge 방식으로 각각의 브랜치의 작업 내용을 남겨놓고 하나의 브랜치로 병합한다. master 에서 slave를 merge해주면, master브랜치로 slave가 병합된다. rebase는 커밋 내역을 재정렬 해서 하나의 브랜치로 합쳐준다. 결과적으로는 한 갈래의 브랜치를 만들어준다. rebase해준 최신의 커밋으로 정렬되고 checkout 되어있던 브런치의 커밋이 먼저 정렬된다. slave 에서 master를 rebase해주면, master브랜치로 slave가 병합된다. Stash 아직 마무리 하지 않은 작업이 있지만, 다른 작업을 해야해서 변경사항을 저장해야 할 때는 어떻게 해야할까? 커밋해서 저장하기에는 내키지 않는다. 이럴 때 쓰는 명령어가 Stash 이다. 아직 마무리하지 않은 작업을 스택에 잠시 저장할 수 있도록 하는 명령어이다. 다음과 같은 파일을 Stash할 수 있다. Modified이면서 Tracked 상태인 파일 Stagi...