Git 사용 여러가지 상황 해결 방법!

청포도봉봉이·2023년 4월 19일
0

git

목록 보기
2/2
post-thumbnail

😎 Main Branch을 기준으로 Branch 생성하여 작업 중 중간에 Main에 쌓인 커밋 로그들로 rebase를 하고 싶다면?

회사에서 업무 중 내가 커밋 여러 개를 하고 (push, merge는 하지 않음) 추가로 작업 진행 중인데 커밋로그가 쌓였을때

  • 전체 커밋로그 기준
  • Main Branch 기준으로 Branch를 하나 만들어서 작업 중인 상황이다.
$ git add .
$ git commit -m 'message'
$ git rebase origin/main
$ git reset HEAD^

stagin area에 올려놓는다.
커밋한다.
원격/메인 브랜치 기준으로 rebase 실행
가장 마지막 커밋 기준으로 reset (현재 작업 중이였던 소스들을 커밋 취소하기 위함이였다)

이 작업을 하기전에 유의해야 할 점은

  • 소스가 겹쳐서 merge conflict가 날 경우가 있는지 꼭 체크를 해준다.

정상적으로 실행이 되었다면 커밋 로그는

  • 내 로컬 기준 커밋 로그

이렇게 작업하고 난 뒤에 push할때는 git push -f를 꼭 해줘야 한다.
왜냐면 rebase를 한 사실을 원격 서버에서는 모르기 때문이다.

😂 git 초기화 후 원격 repository 연결하는 방법

$ rm -rf ./.git 
  • 로컬 저장소의 .git 폴더 삭제
$ git init
  • .git 폴더 생성 및 초기화
$ git add .
$ git commit -m "first commit"
$ git branch -M main
$ git remote add origin https://github.com/pak0426/vue_cli_begin.git
$ git push -u origin main
  • git 커밋 예시



😅 git 커밋 후 rebase를 하는 중에 main branch와 conflict가 났을때

  1. 커밋한 소스 중에 중복되는 파일이 있으면 conflict가 난다.
  2. 내가 8개의 커밋 중에 8번째 커밋과 충돌이 있다면 8번째 커밋은 rebase가 되지 않고 중단된다.
  3. 8번째 리베이스 전에 겹치는 소스를 수정하고 커밋을 한다.
  4. 그러면 그 소스를 기반으로 1개의 커밋이 더 생기므로 9개의 커밋이 올라간다.

당황하지 않고 conflict 나는 파일을 수정해주면 된다.

profile
서버 백엔드 개발자

0개의 댓글