programing

오류: 다음 파일에 대한 로컬 변경 내용은 체크아웃 시 덮어씁니다.

starjava 2023. 6. 26. 20:46
반응형

오류: 다음 파일에 대한 로컬 변경 내용은 체크아웃 시 덮어씁니다.

이 질문은 이 질문과 비슷하지만 더 구체적입니다.

는 두의 분과가 .staging그리고.beta는 가내개로 합니다.staging다음을 사용합니다.master벌레를 고치기 위한 가지그래서 스테이징 작업 중에 오류가 나타나면 다음으로 변경합니다.master분기:

git checkout master

그리고 그 일들을 하라.

git add fileToAdd
git commit -m "bug fixed"

그리고 두 지점과 병합합니다.

git checkout staging
git merge master
git checkout beta
git merge beta

그리고 작업 트리에 다른 파일이 있더라도 상관없습니다.

그러나 이제 지점으로 변경하려고 하면 다음과 같은 오류가 발생합니다.

error: Your local changes to the following files would be overwritten by checkout:
src/Pro/ConvocationBundle/Controller/DefaultController.php
Please, commit your changes or stash them before you can switch branches.
Aborting

준비 영역에서 파일을 제거해야 한다고 생각했습니다.

git reset HEAD src/Pro/ConvocationBundle/Controller/DefaultController.php

하지만 저도 같은 오류를 겪고 있습니다.내가 하면,git status알겠습니다No changes to commit

경고: 이를 실행하면 로컬 변경 내용이 무시됩니다.로컬 변경사항을 취소하려는 경우에만 이 작업을 실행합니다.

저는 같은 문제에 부딪혔고 그것을 해결했습니다.

git checkout -f branch

그리고 그것의 사양은 꽤 명확합니다.

-f, --force

분기 전환 시 인덱스 또는 작업 트리가 HEAD와 다른 경우에도 계속 진행합니다.이것은 로컬 변경사항을 버리는 데 사용됩니다.

인덱스에서 경로를 체크아웃할 때 병합되지 않은 항목에 대해 실패하지 마십시오. 대신 병합되지 않은 항목은 무시됩니다.

파일을 수정한 후 전환하려는 분기에도 이 파일에 대한 변경 사항이 있을 때 오류가 나타납니다(최신 병합 지점에서).

내가 보기에 당신의 선택은

  • 커밋한변경 할 수 . 커밋이 커수이다정니합커을밋로있수다사니습커항으수밋경할다정변커한을아밋밋한닌음이추가커▁commit▁commits(다▁in▁modify있다you정▁they▁and▁not,▁long▁commit▁can니습▁with▁(,▁then▁this▁amend수re')push); 는또
  • 저장 사용:
    git stash save your-file-name
    git checkout master
    # do whatever you had to do with master
    git checkout staging
    git stash pop

git stash save변경 내용을 포함하는 스택을 생성하지만 커밋 또는 분기와 연결되지는 않습니다. git stash pop저장된 변경 사항을 복원하고 저장된 변경 사항을 저장소에서 제거하는 최신 저장 항목을 현재 분기에 적용합니다.

로컬 변경사항을 커밋하지 않으려면 분기를 강제로 체크아웃할 수 있습니다.

git checkout -f branch_name

저는 같은 문제에 부딪혔고 그것을 해결했습니다.

git checkout -f 지점

음, 심요해를 하세요.-f스위치를 켜다다음을 사용하면 커밋되지 않은 변경 사항이 손실됩니다.-f스위치를 켜다사용하는 것이 도움이 되는 몇 가지 사용 사례가 있을 수 있습니다.-f대부분의 경우, 당신은 원할 것입니다.stash과 그 다음에 사및변경사항항경변사▁your항변경.switch나뭇가지.stashing절차는 위에 설명되어 있습니다.

이 오류는 전환 중인 분기에 현재 분기에 없는 변경 사항이 있을 때 발생합니다.

새 분기로 전환하려고 할 때 이 오류가 표시되면 현재 분기가 하나 이상의 커밋 뒤에 있을 수 있습니다.그렇다면 다음을 실행:

git fetch

대상 분기와 충돌할 수 있는 종속성도 제거해야 합니다.

예를 들어 iOS 개발자의 경우:

pod deintegrate

그런 다음 지점을 다시 확인해 보십시오.

원하는 분기가 새로 생성되지 않은 경우 커밋을 선택하여 충돌을 수정하거나 변경 사항을 저장한 다음 충돌을 수정할 수 있습니다.

Git Stash(권장)

git stash
git checkout <desiredBranch>
git stash apply

체리픽(더 많은 작업)

git add <your file>
git commit -m "Your message"
git log

커밋의 샤를 복사합니다.그런 다음 원하지 않는 변경 내용을 삭제합니다.

git checkout .
git checkout -- . 
git clean -f -fd -fx

지점이 최신 상태인지 확인합니다.

git fetch

그런 다음 원하는 지점으로 체크아웃합니다.

git checkout <desiredBranch>

그런 다음 체리가 다른 커밋을 선택합니다.

git cherry-pick <theSha>

이제 갈등을 해결합니다.

  1. 그렇지 않으면 다음을 사용하여 현재 지점 변경을 취소할 수 있습니다.
git checkout -f branch

저도 같은 오류를 겪었습니다.사실 저는 펄럭이는 오래된 SDK 패키지를 새로운 업데이트된 패키지로 재정의하려고 했습니다.그래서 그 오류가 발생했습니다.

VS Code로 flooter sdk 디렉토리를 열고 프로젝트를 정리했습니다.

VSCode cmd에서 이 코드 사용

git clean -dxf

그 다음에 사용git pull

Keltar의 수락된 답변에 대한 설명은 매우 좋지만(그리고 저는 그것을 지지했습니다), 정확하지 않다고 생각하기 때문에 다른 답변을 드리고 싶습니다.Git가 고려하는 것은 마지막 병합 지점 이후 대상 분기/커밋의 수정된 파일에 변경이 있는 경우가 아닙니다.이 모든 것은 수정된 파일이 같은지 여부에 따라 달라집니다.HEAD그리고 목표 커밋.파일이 동일한 경우 Git는 작업 트리에 있는 것처럼 파일을 체크아웃하고 보관하는 데 문제가 없습니다.그러나 적어도 수정된 파일이 동일하지 않은 경우HEAD대상 커밋/브런치는 해당 위치로 이동하려면 병합이 필요하므로 체크아웃을 거부합니다.누군가는 이것이 받아들여진 대답과 똑같다고 말할 수도 있습니다. 그렇죠?글쎄, 그렇지는 않아요.파일은 동일한(콘텐츠)일 수 있으며 여러 가지 상황에서 대상 분기 기록에 커밋이 남아 있을 수 있습니다.예:

  • 대상 분기 기록의 파일에 커밋한 다음 되돌리기가 있었습니다.
  • 두 기록에 동일한 변경 사항이 적용됩니다.

그리고 그것은 역사에서 뒤로/앞으로 나아가는 것과 같은 경우를 고려하지 않은 것입니다. 기하세요억.HEAD대 목표 커밋.

현재 분기에서 커밋하고 다른 분기로 체크아웃한 후 마지막으로 병합 대신 해당 커밋을 선택할 수 있습니다.

만약 당신들이 taskrunner를 사용하고 있다면, 당신들은 그것을 멈추고 git을 변경한 다음 tasrunner를 다시 실행해야 합니다.그렇지 않으면 작업 실행기가 git 주석을 사용하여 변경하는 추적 파일을 보고 변경합니다.

저 같은 경우는 좀 달랐어요.

커밋을 에 을생고푸만나지실다니습행했중에커시밋했성하▁i다니▁i▁did▁it습실▁and▁a▁commit행했▁later▁push',ve▁created커나.git update-index --assume-unchanged <file>로컬에서 사용할 콘텐츠를 편집했지만 다른 지점으로 체크아웃할 때 이 오류가 표시됩니다.

제 해결책은 필요한 지점에 대한 로컬 변경 및 체크아웃을 취소하고 해당 지점에서 로컬 변경을 수행하는 것이었습니다.

언급URL : https://stackoverflow.com/questions/22424142/error-your-local-changes-to-the-following-files-would-be-overwritten-by-checkou

반응형