-
Merge
3way
- 만약 Base와 브랜치 2개를 머지할때 Base와 다른 코드를 갖고 있는 브랜치를 더 최신 변경사항으로 판단하고 AutoMerging을 해주는데 만약 2개의 브랜치가 둘 다 다르다면 Conflict이 날 수 있음!
💡 근데 위의 상황에서 다른 코드가 들어가는 상황이 생길 수 있기 때문에 AutoMerging 후에는 꼭 코드를 확인 해봐야함!
Fast-forward
- 브랜치는 작업공간을 가르키는 포인터로 항상 브랜치의 최신 커밋을 가리킴!
- Merge를 한다는 것은 진짜 합치는 것이 아닌 Head의 포인터가 Merge 한 부분으로 이동하는 것
Git Options 명령어
- global: 전체 깃에서 적용되는 설정
- local: 프로젝트 폴더에 설정
- git config --global -e: 내가 설정한 alias와 같은 것들을 vscode로 확인 가능
- code a.swift: 해당 파일을 vscode로 보여줌
💡 vscode를 사용한다면 브랜치의 conflict 상황을 간단하게 확인 후 해결할 수 있음!
- git reflog: 과거의 시점 확인 가능
- git reset --hard 커밋아이디: 해당 커밋아이디의 시점으로 이동 가능
- git merge --abort: 실행한 머지 취소
- git config --global alias.cm 'commit -am': alias.생략 코드 ‘실행할 코드’ 하면 긴 코드를 나만의 생략 코드로 줄여서 설정 후 사용 가능
- git merge squash: 여러 개의 commit을 하나의 commit으로 묶어버리고 싶을 때 사용 가능
💡 Merge를 하지 않은 브랜치를 삭제하고 싶을 경우에는 -D를 사용 Merge를 한 브랜치를 삭제하고 싶을 경우에는 -d를 사용