본문 바로가기

Programming/Git13

로컬 Git 레포지토리 정리 및 최적화 가이드 Git 레포지토리는 프로젝트가 진행됨에 따라 크기가 커지고, 오래된 객체들이 쌓이면서 관리와 성능 문제가 발생할 수 있습니다. 특히 로컬 레포지토리에서 이러한 문제를 방지하기 위해 정기적으로 레포지토리를 정리하고 최적화하는 것이 중요합니다.아래에서는 로컬 Git 레포지토리를 최적화하고 정리하는 방법을 단계별로 설명하겠습니다.1. 로컬 레포지토리 최적화Git의 gc(Garbage Collection) 명령어는 불필요한 데이터나 오래된 객체를 정리하여 레포지토리를 최적화하는 데 사용됩니다.명령어:git gc --aggressive --prune=now옵션 설명:--aggressive: Git의 garbage collection을 더 강력하게 수행하여 디스크 공간 사용을 최소화합니다. 성능은 다소 느려질 수 .. 2025. 1. 23.
git log - 콘솔에서 그래프로 깃로그 확인 git log --graph --pretty=oneline --abbrev-commit --all 2023. 4. 14.
git 특정 commit 삭제 - rebase 위 이미지에서 f2349010 커밋을 삭제하고자 한다. 그 이전 커밋위치(c09e7d89)가 필요하다 $ git checkout -t origin/develop # -t: 로컬의 동일한 이름의 branch를 생성하면서 해당 branch로 checkout $ git rebase -i c09e7d89 # 삭제하고자 하는 이전 커밋의 위치를 넣어준다 pick a5e36918 pick d02d135d pick 94a9c6aa d f2349010 # pick -> d 로 변경 :wq 하면 해당 커밋이 삭제된 local develop 브랜치가 생성되었다, 그대로 포스 푸시하면 원하는 커밋이 삭제된 브랜치가 원격저장소에 적용된다 $ git push origin develop -f 2023. 4. 13.
git push 전에 할일 - PR 시 conflict PR 후 conflict 가 나면 웹상에서 확인/수정하기가 쉽지 않다, 로컬에서 미리하는 방법 정리한다 전체 fetch 받기 origin/develop 으로 rebase 하기 - conflict 발생 : 로컬에서 충돌을 해결하고 git push 그러면 PR하고 머지 시 충돌이 발생하지 않는다. 어디에서 충돌을 해결하느냐의 문제이긴 한데, 나는 로컬에서 해결이 IDE로 보면서 훨 편해서, 이렇게 하고 있다. > git fetch -a && git rebase origin/develop && git push --set-upstream 2023. 1. 25.
squash - git commit을 깔끔하게 push 전에 깔끔하게 하나의 커밋으로 올리고 싶을 때 사용 local master branch 최신화 # pull local master $ git checkout master $ git pull origin master # rebase $ git rebase -i master mybranch squash pick last commit pick -- pick -- pick -- pick first commit 처음 pick 만 두고 나머지는 s (squash)로 수정한다 pick last commit s -- s -- s -- s first commit conflict 발생 conflict 가 해결될 때까지 1,2,3을 반복 # conflict 나는 부분 수정 # 1 $ git add files # 2.. 2020. 6. 22.
git force push local 로 remote 덮어쓰기 master branch에서는 하지 않기를 바란다 대부분 서브 브랜치에서 스쿼시 후에 많이 사용 $ git push -f 2020. 6. 18.