충남대학교 컴퓨터공학과의 "실전코딩" 강의를 필기한 내용입니다.
이 문서는 보관이 목적이고, 관리되지 않습니다. 따라서 잘못된 정보가 포함되어 있거나 순서가 뒤죽박죽일 수 있습니다.
명령어들
- HEAD^ : 내가 한 마지막 커밋 바로 이전의 커밋
- Soft : staged area
- Mixed : working directory
- Hard : delete
- branch branch_name 으로 가지칠 수 있고
- 그냥 branch만 하면 현재 브랜치와 존재하는 브랜치들을 볼 수 있다
- 그리고 checkout branch_name으로 브랜치를 바꿀 수 있다
- head라는 포인터가 있고 branch를 하면 master말고 헤드가 가리킬 수 있는놈이 하나 더 생긴다 - 이때 checkout을 하면 이제 헤드가 그 브랜치로 옮겨가게 되는 것
- Merge 과정에서 충돌이 있을 경우 오류 내용에 어느 파일에서 충돌이 있었는지 보여준다. 그 다음 그 파일에 들어가면 충돌되는 두 내용이 헤드와 브랜치별로 보여지는데 그 중에 맘에드는걸 남기고 git add . 를 해준 다음 commit을 해주면 문제없이 정상적으로 작동하게 된다
- 하나의 기능을 다 완료했을 때 = commit으로 적을 내용이 있을 때 = commit을 하는 것이 정석이다
- 스쿼시 머지? 리베이스?
- Squash : 브랜치를 하나 만들고 거기다가 커밋을 졸라게 한 다음 다른 브랜치로 와서 git merge —squash branch_name을 하게 되면 전에 브랜치에서 했던 커밋 내역이 다 사라지면서 머지된다. 그래서 머지 이후에 새로 커밋을 하면 브랜치에서 커밋한 내용들은 다 사라지고 브랜치를 만들기 전 커밋에 지금 한 새로운 커밋 이렇게 커밋이 바로 연결되게 된다 - squash옵션을 주지 않으면 커밋한 내용까지 전부 다 머지되는데 이 옵션을 주게 되면 브랜치에서 커밋한 내용들이 없어지게 된다
- Git rebase -i HEAD~2 : 헤드부터 두개의 커밋을 하나로 합쳐서 커밋메세지를 수정할 수 있음
- 마스터 브랜치는 절대로 커밋 메세지를 수정하면 안된다
- 다른사람의 커밋 메세지를 절대 함부로 건들면 안된다
- 이것 실행하면 커밋한 순서대로 위에서부터 옵션선택창이 뜨게 된다. *먼저 커밋한 놈을 pick하고 나중에 커밋한 놈을 squash로 주면 된다
- 그리고 그 다음 창에서 커밋 메세지를 고치면
- Git log했을 때 두 커밋 메세지가 하나로 합쳐져 내가 수정한 커밋 메세지로 나오는 것을 보게 된다