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

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

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