leehyogum의 트러블슈팅

[Git] 로컬 브랜치와 원격 브랜치의 차이점 확인하기 본문

Git

[Git] 로컬 브랜치와 원격 브랜치의 차이점 확인하기

leehyogum 2024. 11. 3. 20:11

 

DB 수업시간에 과제로 진행한 B+tree를 구현해서 깃허브에 코드를 올려놓았었다.

그런데 이후 테스트 데이터를 추가하고 싶어져서, data/inputdata.csv, data/deletedata.csv 파일을 추가해서 add, commit, push 하였다.

 

그런데 다음과 같은 에러가 발생하였다.

 

깃허브에 B+tree 완성 후에 원격에서 무언가 수정한 게 없는데.. 원격 브랜치의 변화가 로컬 브랜치에 반영되지 않았다고 에러가 났다.

따라서 원격 브랜치와 로컬 브랜치의 어떤 점이 다른지 확인해 보았다.

 

1. 원격 브랜치 코드 가져오기

git fetch origin

 

fetch가 무엇인지는 이전 글에 정리 해놓았다.

[Git] - [Git] pull과 fetch의 차이점 

 

[Git] pull과 fetch의 차이점

pull과 fetch의 차이점pull과 fetch의 가장 큰 차이점은 병합 (merge) 여부이다.pull은 원격 repository에서 변경 사항을 로컬 repository로 내려받아 병합을 진행한다.fetch는 원격 repository에서의 변경 사항을

leehyogum.tistory.com

 

 

origin/master라는 이름의 브랜치에 원격 저장소의 최신 상태가 저장되었다.

그럼 이제 master와 origin/master의 코드를 비교해보겠다.

 

2. 원격 저장소와 로컬 저장소 비교

git diff master origin/master

 

정확히 무슨 말인지는 모르겠지만..

로컬 master와 원격 master가 동기화되지 않은 상태로 푸시를 한게 문제인 것 같다.

로컬 저장소의 master에는 원격 저장소에 없는 파일 (deletedata.csv, inputdata.csv)가 추가되었고, 원격에는 이미 다른 커밋이 있어 충돌이 발생한 것 같다.

 

따라서 원격 저장소의 최신 상태를 로컬 저장소에 반영하고, 새롭게 파일을 추가하여 다시 원격 저장소에 반영하려 한다.

 

3. 원격 저장소의 최신 상태 가져오기

git pull --rebase origin master

 

rebase는 원격 저장소의 변경사항을 가져오면서 로컬 커밋을 원격 변경사항 뒤에 배치한다.

 

이랬더니 이젠 data 디렉토리가 untracked file에도 안 떠서 add가 안 된다..

그런데 이상하게 디렉토리 이름을 data에서 다른걸로 바꾸면 untracked file에 뜬다.

data 디렉토리를 깃허브에 못 올리는건가..?

그래서 그냥 디렉토리 이름을 testdata에 바꿔서 올렸다.

 

 

??

data디렉토리는 왜 올라간거니

다시 지워야겠다... delete 변경사항을 커밋해서 다시 올려서 삭제했다.

대체 뭐가 문제인지 모르겠다.

아직 많이 부족한 것 같다. 깃허브 공부 열심히 해야겠다...

 

 

'Git' 카테고리의 다른 글

[Git] 커밋 메세지 변경하기  (0) 2024.11.05
[Git] pull과 fetch의 차이점  (3) 2024.10.10