본문 바로가기
CS/python

Git Jupyter notebook 충돌 해결 방법

by judy@ 2023. 5. 3.

jupyter notebook은 실행에 용이한 파일 형식이지만, git으로 버전을 관리하기 쉽다고 말할 수는 없다. 무려 78개의 conflict가 있다고 하는데, 너무 막막해서 GPT에게 물어보았더니 다음과 같은 해답을 얻었다.


ChatGPT says:

Jupyter Notebook 파일은 JSON 형식으로 저장되기 때문에, Git에서 관리하다 보면 충돌이 발생할 수 있습니다. 이 때 가장 잘 수정하는 방법은 다음과 같습니다.

  1. 충돌이 발생한 파일을 열어서 충돌 부분을 확인합니다.
  2. 충돌 부분을 수동으로 수정하거나, 도구를 사용하여 충돌을 해결합니다.
  3. 충돌이 해결된 파일을 저장합니다.
  4. Git 명령어를 사용하여 충돌을 해결한 파일을 스테이징하고 커밋합니다.

만약, 충돌이 발생한 Jupyter Notebook 파일이 대용량이거나 여러 파일이 함께 충돌이 발생했다면, 다음과 같은 방법을 시도할 수 있습니다.

1. 충돌이 발생한 브랜치에서 Jupyter Notebook 파일을 추출합니다.

$ git checkout --ours path/to/notebook.ipynb

 

위 명령어는 충돌이 발생한 브랜치에서 현재 버전을 가져옵니다.

 

2. 충돌이 발생한 브랜치와 병합할 브랜치에서 Jupyter Notebook 파일을 추출합니다.

$ git checkout --theirs path/to/notebook.ipynb

위 명령어는 충돌이 발생한 브랜치와 병합할 브랜치에서 추출한 버전을 가져옵니다.

 

3. 추출한 파일들을 병합합니다.

$ git merge-file path/to/notebook.ipynb path/to/notebook.ipynb path/to/notebook.ipynb

위 명령어는 충돌이 발생한 파일과 브랜치에서 추출한 파일을 병합합니다.

 

4. 병합된 파일을 저장합니다.

5. Git 명령어를 사용하여 병합된 파일을 스테이징하고 커밋합니다.

 

이렇게 하면, 충돌이 발생한 Jupyter Notebook 파일을 수동으로 수정하는 대신, Git 명령어를 사용하여 충돌을 해결할 수 있습니다.


실제로 위를 통해 문제가 해결되었다. 다만, 셀 하나하나가 중요한 결정을 하는 경우라면 지양하는 것이 좋을 듯하다. (난 포기..)

반응형