Git 오류 '다음 파일에 대한 로컬 변경 사항은 병합으로 덮어 쓰여집니다'수정 방법



문제를 제거하기 위해 도구를 사용해보십시오

오류 메시지 ' 다음 파일에 대한 로컬 변경 사항은 병합으로 덮어 씁니다. ”는 Git 버전 제어 메커니즘에서 발생합니다. 이 오류는 원격 저장소에서도 수정 된 파일을 수정 한 경우 발생합니다.



Git 오류 : 다음 파일에 대한 로컬 변경 사항은 코딩 중에 병합으로 덮어 씁니다.

Git 오류 : 다음 파일에 대한 로컬 변경 사항은 병합으로 덮어 씁니다.



원격 저장소에도 수정 된 커밋되지 않은 파일이 없으면이 오류 메시지가 표시되지 않습니다. 이 메시지를 경험할 때 다른 팀원에게 문의하고 의견을 묻는 것이 가장 좋습니다. 로컬 변경 사항을 병합하든 리포지토리에 버전을 유지하든 관계없이 모든 사람이 참여하도록하는 것이 가장 좋습니다.



리포지토리 란 무엇입니까? Git에서 푸시 및 풀이 란 무엇입니까?

리포지토리는 GitHub 버전 제어 메커니즘을 통해 팀 구성원이 지속적으로 수정하고 획득하는 일종의 코드 저장소입니다. ㅏ ' 손잡이' Pycharm 등의 로컬 저장소 / IDE (통합 개발 환경)에 최신 버전의 저장소를 가져오고 있음을 의미합니다.

Pull 후 코드를 변경하거나 더 많은 기능을 추가합니다. 완료되면‘ 푸시' 코드를 저장소에 저장하므로 변경 사항이 저장되고 추가됩니다. 코드는 다른 사람도 액세스 할 수 있습니다.

Github 버전 관리를 처음 사용하는 경우 먼저 모든 기본 사항을 살펴 보는 것이 좋습니다. 이 기사에서는 이미 기본 지식이 있고 모든 내용을 알고 있다고 가정합니다.



'병합시 다음 파일에 대한 로컬 변경 사항을 덮어 쓰게됩니다'를 수정하는 방법은 무엇입니까?

이 오류 메시지의 해결 방법은 수행하려는 작업에 따라 다릅니다. 로컬 변경 사항을 버리고 저장소에서 가져 오거나 로컬 변경 사항을 숨김에 저장하고 저장소에서 버전을 가져올 수 있습니다. 그것은 모두 당신의 선호도에 달려 있습니다.

따라서 팀원과상의하고 모두가 같은 페이지 앞으로 나아 가기 전에. 잘못 커밋하거나 잘못된 버전을 푸시하면 전체 팀에 영향을 미칠 수 있습니다.

방법 1 : 강제로 당겨서 로컬 변경 사항 덮어 쓰기

만약 너라면 로컬에서 수행 된 변경 사항에 신경 쓰지 마십시오 저장소에서 코드를 얻으려면 강제로 끌어 올 수 있습니다. 이렇게하면 컴퓨터에서 수행 된 모든 로컬 변경 사항을 덮어 쓰고 저장소에있는 버전의 중복 복사본이 나타납니다.

IDE에서 다음 명령을 실행하십시오.

git reset-하드 git pull

이렇게하면 모든 로컬 변경 사항이 즉시 삭제되므로 수행중인 작업을 알고 로컬 변경 사항이 필요하지 않은지 확인하십시오.

방법 2 : 두 변경 사항 모두 유지 (로컬 및 리포지토리에서)

두 변경 사항을 모두 유지하려면 (로컬에서 수행 된 변경 사항과 저장소에있는 변경 사항) 변경 사항을 추가하고 커밋 할 수 있습니다. 당기면 분명히 병합 충돌이 발생합니다. 여기에서 IDE의 도구 (예 : Difftool 및 mergetool)를 사용하여 두 코드를 비교하고 유지할 변경 사항과 제거 할 변경 사항을 결정할 수 있습니다. 이것이 중간 방법입니다. 수동으로 제거 할 때까지 변경 사항이 손실되지 않습니다.

git add $ the_file_under_error git commit git pull

병합 충돌이 발생하면 충돌 해결 도구를 열고 한 줄씩 확인하십시오.

방법 3 : 두 변경 사항을 모두 유지하지만 커밋하지 않음

이 상황은 디버깅중인 부분적으로 손상된 코드가 있기 때문에 개발자가 커밋 할 준비가되지 않은 경우가 있습니다. 여기에서 변경 사항을 안전하게 숨기고 저장소에서 버전을 가져온 다음 코드를 해제 할 수 있습니다.

git stash save --keep-index

또는

자식 숨김
git pull git stash pop

숨김을 푼 후 충돌이 발생하면 일반적인 방법으로 해결해야합니다. 다음 명령을 사용할 수도 있습니다.

자식 숨김 적용

충돌로 인해 숨겨진 코드를 잃을 준비가되지 않은 경우 팝 대신.

병합이 실행 가능한 옵션이 아닌 것 같으면 리베이스를 고려하십시오. 리베이스는 일련의 커밋을 새 기본 커밋으로 이동하거나 결합하는 프로세스입니다. 리베이스의 경우 코드를 다음과 같이 변경하십시오.

git stash git pull --rebase origin master git stash pop

방법 4 : 코드의 '특정'부분 변경

코드의 특정 부분을 변경하고 모든 것을 바꾸고 싶지 않은 경우 범하다 덮어 쓰지 않으려는 모든 항목은 방법 3을 따릅니다. 저장소에있는 버전에서 덮어 쓰려는 변경 사항에 대해 다음 명령을 사용할 수 있습니다.

git checkout path / to / file / to / revert

또는

git checkout HEAD ^ path / to / file / to / revert

또한 다음을 통해 파일이 준비되지 않았는지 확인해야합니다.

git reset HEAD 경로 / to / file / to / revert

그런 다음 pull 명령을 진행합니다.

git pull

그런 다음 저장소에서 버전 가져 오기를 시도합니다.

3 분 읽기