(gitHub)On branch main nothing to commit, working tree clean 해결

2024. 7. 17. 20:54·GitHub 오류 및 명령어 정리

 

(vscode 사용함) 코드 작성을 다 완료하고 커밋을 할려했으나 해당 문제 때문에 커밋이 안되는 현상이 있다.

 

이유: "로컬 지점이 원격 지점에 대해 알지 못합니다. 로컬 지점(마스터)이 원격 지점(이 경우에는 오리진/마스터)과 자신을 비교해야 한다고 git에 말하지 않으면 git 상태는 지점과 원격 지점의 차이점을 알려주지 못합니다. 따라서 다음을 사용해야 합니다." 라고 stack over flow에서 말하였다.

상태를 보면 이러하다 

On branch main 

Your branch is up to date with 'origin/main'

 

changes to be commited:

(use "git restore --staged <file>..." to unstage

modified: fronted/css/main.css 라고 뜬다

그리고 다시 comit하니 작동이 원활하게 됐다?

 

다만 푸쉬할때 문제가 생겼다

해당 문제는 git push하기 전에 git pull을 다시 하라고 한다.

 

일단 git pull --rebase origin main 명령어는 로컬 저장소의 현재 브랜치에 원격 저장소(origin)의 main 브랜치의 최신 변경 사항을 가져오면서, 병합 대신 리베이스(rebase)를 사용하는 방식입니다. 이 명령어는 주로 커밋 히스토리를 보다 깔끔하게 유지하기 위해 사용된다.

리베이스와 병합의 차이

  • 병합(Merge): 두 브랜치의 히스토리를 합쳐서 하나의 새로운 커밋을 생성합니다. 이 과정에서 병합 커밋이 만들어져 히스토리가 복잡해질 수 있다.
  • 리베이스(Rebase): 한 브랜치의 커밋을 다른 브랜치의 끝에 적용하여 커밋 히스토리를 재정렬합니다. 이를 통해 직선형의 깔끔한 히스토리를 유지할 수 있다.

git pull --rebase origin main의 동작

  1. 원격 저장소(origin)의 main 브랜치에서 최신 변경 사항을 가져온다.
  2. 로컬 브랜치에서 현재 작업 중인 커밋을 잠시 저장(stash)해둔다.
  3. 로컬 브랜치가 원격 main 브랜치의 최신 커밋을 가리키도록 업데이트한다.
  4. 저장해둔 로컬 커밋을 원격 main 브랜치의 최신 커밋 위에 하나씩 재적용한다.

예시

# 현재 브랜치가 'feature' 브랜치라고 가정
git checkout feature
# 'feature' 브랜치에 'main' 브랜치의 최신 커밋을 리베이스
git pull --rebase origin main

이 명령어를 실행하면 feature 브랜치는 main 브랜치의 최신 커밋을 포함하고, 이후 feature 브랜치의 커밋들이 main 브랜치의 최신 커밋들 위에 재적용된다. 이 과정에서 잠재적인 충돌이 발생할 수 있으며, 충돌이 발생하면 이를 수동으로 해결해야 한다.

장점

  • 커밋 히스토리가 보다 깔끔해진다.
  • 협업 시 변경 사항을 추적하기 쉽다.

단점

  • 충돌이 발생하면 이를 수동으로 해결해야 한다.
  • 리베이스 과정에서 커밋 해시가 변경되므로, 다른 사람과 협업 중이라면 주의가 필요하다.

이와 같은 특징들 때문에 git pull --rebase origin main 명령어는 팀의 워크플로우와 상황에 따라 적절하게 사용해야 한다.

 

 

리베이스를 사용한후 git push origin main 하니 에러 없이 github에 잘 전송된 결과를 볼 수 있다.

 

 

 

반응형

'GitHub 오류 및 명령어 정리' 카테고리의 다른 글

git config pull.rebase true  (0) 2024.09.25
git pull을 해야하는데 오류가 난다면?  (0) 2024.08.06
git branch, switch,checkout, merge  (0) 2024.08.01
다른 사람의 파일을 받아 내 git에다가 push하기(Mac 기준)  (1) 2024.07.24
git 기초 명령어 모음  (0) 2024.07.15
'GitHub 오류 및 명령어 정리' 카테고리의 다른 글
  • git pull을 해야하는데 오류가 난다면?
  • git branch, switch,checkout, merge
  • 다른 사람의 파일을 받아 내 git에다가 push하기(Mac 기준)
  • git 기초 명령어 모음
wanduek
wanduek
차근차근 쌓아가는 지식
  • wanduek
    완득님의 블로그
    wanduek
  • 전체
    오늘
    어제
    • 분류 전체보기 (194)
      • Onboarding (0)
      • 아티클 (0)
      • SQL 정리 (20)
      • 웹개발 기초정리(프엔) (9)
      • (Java)코테연습 (27)
      • 미니 프로젝트 (9)
        • 자기소개 웹페이지 (5)
        • 수강생 관리 프로그램(Java) (4)
      • GitHub 오류 및 명령어 정리 (7)
      • Java 문법정리 (Array부터) (17)
      • Java로 이용한 기능 (2)
      • Web지식 (12)
        • web3 (6)
        • 네트워크 (6)
      • 인텔리제이 오류 대처 방법 (1)
      • Computer Science (7)
      • Spring (38)
        • 미니 프로젝트(배달) (2)
        • Spring 트러블 슈팅 (3)
        • QueryDSL, JPQL (3)
        • 미니 프로젝트(뉴스피드) (5)
        • 미니 프로젝트(Trello) (2)
      • 개발자 밋업 (1)
      • Docker (2)
      • Redis (1)
      • AWS (6)
        • AWS 트러블 슈팅 (2)
      • Jmeter (2)
      • 우리 지금 만나 (12)
      • Kafka (1)
      • RabbitMQ (2)
        • 트러블 슈팅 (1)
      • STOMP (2)
      • WebSocket (3)
        • 트러블 슈팅 (2)
      • Node.js (2)
      • Elastic Search (2)
      • Nginx (1)
      • 퍼블엘 (2)
      • openresty (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    백앤드개발자 #초심자
    json
    groupby
    where
    jquery
    SQL
    ㅏㄷ
    github
    git
    fetch
  • 최근 댓글

  • 최근 글

  • 반응형
  • hELLO· Designed By정상우.v4.10.0
wanduek
(gitHub)On branch main nothing to commit, working tree clean 해결
상단으로

티스토리툴바