WinGyu_coder

error: The following untracked working tree files would be overwritten by merge: 깃 에러 해결방법 본문

에러 error 및 해결법 모음집

error: The following untracked working tree files would be overwritten by merge: 깃 에러 해결방법

WinGyu 2023. 11. 2. 17:58

이 에러는 Git에서 브랜치를 병합(merge)하려고 할 때 발생합니다. 병합하려는 변경사항이 로컬 작업 디렉토리에 있는 일부 추적되지 않은 파일들과 충돌하기 때문입니다. 구체적으로, __pycache__ 디렉토리에 있는 .pyc 파일들이 이 경우의 문제입니다.

이 문제를 해결하기 위한 몇 가지 방법이 있습니다:

1. 추적되지 않은 파일 삭제

로컬에서 사용하지 않는 .pyc 파일들을 삭제하면 이 문제를 해결할 수 있습니다. 이는 충돌하는 파일들이 컴파일된 바이트코드 파일이기 때문에 안전한 접근 방법입니다. 파일을 삭제한 후 다시 병합을 시도하세요.

# __pycache__ 폴더와 .pyc 파일을 재귀적으로 찾아서 삭제
find . -type d -name "__pycache__" -exec rm -r {} +
find . -type f -name "*.pyc" -delete

# 병합 시도
git merge master

2. 변경사항 커밋 또는 스태시

로컬 작업 디렉토리에 있는 변경사항을 커밋하거나 스태시(stash)하여 병합 충돌을 피할 수 있습니다.

# 변경사항을 스태시
git stash

# 병합 시도
git merge master

# 스태시한 변경사항을 다시 적용
git stash pop

3. 강제 병합

-f 또는 --force 옵션을 사용하여 강제로 병합을 시도할 수도 있지만, 이는 권장되지 않는 방법입니다. 로컬의 변경사항이 덮어쓰여질 수 있기 때문입니다.

이 중에서 가장 안전하고 일반적인 방법은 추적되지 않은 .pyc 파일을 삭제한 후 병합을 다시 시도하는 것입니다.

--Window-- 환경일시

Windows 환경에서는 PowerShell을 사용하여 동일한 작업을 수행할 수 있습니다. PowerShell에서 다음 명령들을 실행해 보세요:

# 현재 디렉토리에서 __pycache__ 폴더를 찾아서 삭제
Get-ChildItem -Recurse -Filter "__pycache__" | Remove-Item -Force -Recurse

# .pyc 파일을 찾아서 삭제
Get-ChildItem -Recurse -Filter "*.pyc" | Remove-Item -Force

이 명령들을 실행한 후 다시 git merge master를 시도해 보세요.