Git Merge
Git Merge 란?
두 개 이상의 개발 히스토리
를 하나로 합치는 작업.
Rebase와 다르게 히스토리가 모두 보존
된다는 특징이 있음.
사용 이유
시간순
으로 정렬되므로 작성한 사람의 진행 방식을 볼 수 있음.
- 만약
리셋
을 해야하는 상황이 발생하면 원하는 구간으로 리셋할수 있음.단점
- 사람이 많아질 수록 커밋이 많아지면서 레포지토리에서 문제가 생길 가능성이 높음.
- 커밋이 계속 늘어나면서
커밋로그
가 지저분해짐.
Git Rebase
Git Rebase 란?
말 그대로 base
를 재설정한다, 여기서 base
는 branch
를 뜻함.
브랜치의 베이스를 재설정하여 커밋을 다시 작성하는 작업.
사용 이유
- 많은 사람들과 협업을 할 때 커밋을 정리하므로 커밋 로그가 깔끔해짐.
- 커밋을 작성한 사람이 정확히 무슨 작업을 했는지 보기가 편함.
단점
- 입력해야할 명령어가 많음…
사용 방법
- 작업이력을 일단 commit하여 작업 이력을 기록한다.
- 정리가 필요한 시점에 git rebase -i main 명령어를 입력한다.
- 그러면 커밋 이력이 나오는데 거기서 필요한부분은 pick 필요없는 부분은 s(squash)로 바꿔준다.
- 수정방법 : i를 눌러 입력모드로 바꿔준후, 위로 올라가 수정한후 esc를 눌러 입력모드에서 나온뒤,
:wq를 입력하여 저장 후 밖으로 나올 수 있다.
- 다른 화면이 나오면 제일 상단내용 빼고 나머지를 지워준뒤 상단 내용에 내가 작업한 이력들을 한번에 적어준다.
- 그러면 수정은 되었지만 깃허브 페이지에는 수정이 안되었다… 이때 git push origin 브랜치명 -f를 입력하여 강제로 넣어줘야 다시 정상적으로 작동한다!