Git 오류 '다음 파일에 대한 로컬 변경 사항을 병합으로 덮어 씁니다'수정하는 방법

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

힘내 오류 : 다음 파일의 로컬 변경 사항을 병합하여 덮어 씁니다.

원격 저장소에서도 수정 된 커밋되지 않은 파일이 없으면이 오류 메시지가 나타나지 않습니다. 이 메시지가 나타나면 다른 팀원과상의하고 의견을 요청하는 것이 가장 좋습니다. 로컬 변경 사항을 병합하거나 버전을 저장소에 유지하려는 경우 모든 사람을 기내에 보관하는 것이 가장 좋습니다.

리포지토리 란 무엇입니까? 힘내에서 밀고 당기는 것은 무엇입니까?

리포지토리는 코드 구성원을위한 일종의 저장소로, GitHub 버전 제어 메커니즘을 통해 팀 구성원이 지속적으로 수정 및 획득합니다. ' 풀 (Pull)' 은 최신 저장소 버전을 Pycharm 등과 같은 로컬 스토리지 / IDE (Integrated Development Environment)로 가져 오는 것을 의미합니다.

풀 후 코드를 변경하거나 더 많은 기능을 추가합니다. 완료되면 코드를 리포지토리에 ' 푸시' 하여 변경 사항이 저장되고 추가됩니다. 이 코드는 다른 사람들도 액세스 할 수 있습니다.

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

'다음 파일에 대한 로컬 변경 사항을 병합으로 덮어 씁니다'를 수정하는 방법?

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

따라서 앞으로 나아 가기 전에 팀원과상의하고 모두 같은 페이지 에 있는지 확인하는 것이 좋습니다. 잘못 저 지르거나 잘못된 버전을 푸시하면 전체 팀에 영향을 줄 수 있습니다.

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

로컬에서 수행 된 변경 사항에 신경 쓰지 않고 리포지토리에서 코드를 얻으려는 경우 강제로 풀 수 있습니다. 그러면 컴퓨터에서 수행 된 모든 로컬 변경 사항을 덮어 쓰고 리포지토리에 버전의 복사본이 나타납니다.

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

 git reset-하드 git pull 

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

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

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

 자식 추가 $ the_file_under_error 자식 커밋 자식 풀 

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

방법 3 : 두 변경 내용을 모두 커밋하지 않고 유지

이 상황은 디버깅하는 코드가 부분적으로 손상되어 개발자가 커밋 할 준비가되지 않은 경우가 종종 있습니다. 여기서 변경 사항을 안전하게 숨기고 리포지토리에서 버전을 가져온 다음 코드를 해제 할 수 있습니다.

 git stash save --keep-index 

또는

 자식 숨김 
 git pull git 숨김 팝 

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

 자식 숨김 적용 

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

병합이 실행 가능한 옵션처럼 보이지 않으면 리베이스를 수행하십시오. 리베이스는 일련의 커밋을 새로운 기본 커밋으로 옮기거나 결합하는 프로세스입니다. 리베이스하는 경우 코드를 다음과 같이 변경하십시오.

 git stash git pull --rebase origin 마스터 git stash pop 

방법 4 : 코드의 '특정'부분을 변경하십시오.

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

 git checkout 경로 / to / file / to / revert 

또는

 자식 체크 아웃 헤드 ^ 경로 / 파일 / 파일 / 되돌리기 

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

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

그런 다음 pull 명령을 진행하십시오.

 자식 풀 

그러면 리포지토리에서 버전을 가져 오려고 시도합니다.

재미있는 기사