[TIL] 230705

EllaDev·2023년 7월 5일
0

Today I Learn

목록 보기
12/13

Git

git pull —rebase

"git pull" vs "git pull --rebase"

  • 문제 : pull 할때 merge가 되면서 히스토리가 남게 된다. git tree를 깔끔하게 관리하기위해서 현재 프로젝트에서는 남기지 않는다고 한다.

  • 방법 : 발생하는 이유는 내가 해당 브런치 원격에 push하지 않은 commit이 있을 때 pull을 받게되면 생성된다.

    • commit이 있을때는 git pull —rebase을 사용해서 pull을 받으면 된다.
  • 해결: git pull —rebase 이용

원격에 올라간 Commit 되돌리기

  • 문제 : 잘못된 Merge Commit이 원격까지 올라가서 이를 되돌려야했다.
  • 방법 : 2가지 방법을 찾았다.
    • 방법1 > 히스토리 없이 로컬에서 커밋 되돌린 후 강제 푸시

      git reset —hard HEAD~1 / git reset —hard ‘커밋id’ : 커밋 되돌리기
      git push -f origin [원격 브런치] : 강제 푸시

      *주의 사항 : 협업할때 해당 원격에 올린 커밋을 다른 팀원이 받아가게되면 이전 소스가 그대로 원복 될 수 있다.

    • 방법 2> 히스토리 남기고 되돌리기
      git revert —hard ‘커밋id' : 하나의 커밋만 revert
      git revert --no-commit HEAD~3 : 다수의 커밋을 revert
      git commit -m 'Revert: "Commit 문구": Revert 했다는 커밋메시지 작성 후 PUSH

      원격 저장소에 올라간 커밋 되돌리기

  • 해결 : 현재 메시지가 깨끗하게 유지되어야해서 히스토리가 남으면 안되었다. 그래서 모든 팀원에게 얘기하고 그들이 풀받기 전에 방법 1로 적용했다.
profile
Frontend Developer

0개의 댓글