Programing

Visual Studio 2015 Git 오류 메시지 "커밋되지 않은 변경 사항이 있기 때문에 끌어 오기 / 전환 할 수 없음"

lottogame 2020. 12. 25. 08:57
반응형

Visual Studio 2015 Git 오류 메시지 "커밋되지 않은 변경 사항이 있기 때문에 끌어 오기 / 전환 할 수 없음"


에서 가져 오는 데 어려움이 있습니다 origin. 나는 계속 얻는다 :

"커밋되지 않은 변경 사항이 있기 때문에 가져올 수 없습니다. 다시 가져 오기 전에 변경 사항을 커밋하거나 실행 취소하십시오. 자세한 내용은 출력 창을 참조하십시오."

이는 분기 전환에도 적용됩니다. 비슷한 종류의 메시지를 받았지만 항상 그런 것은 아닙니다.

Visual Studio 2015 업데이트 1 및 Visual Studio Team Services Git을 사용하고 있습니다. 내 컴퓨터에는 로컬 master브랜치와 개발 브랜치가 있습니다. 로 전환 master한 다음 풀을 수행 할 때마다 오류 메시지가 표시됩니다. 나는 숨김 및 숨김 숨김 (명령 줄)을 사용했으며 때로는 TortoiseGit사용 하여 끌어 오기를 수행하고 작동합니다.

이상한 점은 TortoiseGit을 사용하여 (커밋되지 않은 파일에서) 되돌리려 고해도 성공적으로 되돌 렸음을 보여줍니다 (이미 Visual Studio 실행 취소를 시도했지만 아무 일도 일어나지 않음). 다시 당기려고해도 여전히 같은 문제입니다. 커밋되지 않은 파일이 거기에 있고 때로는 내가 할 때 git status커밋 할 것이 없다고 말합니다.

참고 :이 문제는 브랜치에서로 전환 한 후에도 발생할 수 있습니다 master. 이 경우 처음에 전환 할 수 없었기 때문에 커밋되지 않은 변경이있을 수있는 방법이 없습니다.

저는 아직 Git을 처음 사용하지만 각 작업에 대해 서로 다른 환경을 전환하는 대신 하나의 환경을 사용하고 싶기 때문에이 문제를 해결하는 더 좋은 방법이 있는지 알고 싶습니다. Visual Studio에서 모든 작업을 수행하는 것이 더 쉽습니다. 나는 이미 읽었습니다.

VS의 TFS / GIT 커밋되지 않은 변경 사항이 있기 때문에 마스터로 전환 할 수 없습니다.

최신 정보

이 문제는 줄 끝과 관련된 것 같습니다.

a git diff -R수행하면 줄 끝 "^ M"이 추가되었으며 다른 것을 알 수 있습니다. * text=autoin gitattributes를 제거하고 (그런 다음 변경 사항을 확인) gitattributes가 커밋되어야하는 자체 변경을 알리지 않도록 다시 적용하면 도움이되는 것처럼 보이지만 변경 사항은 없습니다.


저에게는 커밋되지 않은 변경 사항이나 추적되지 않은 파일이 없었으며 Visual Studio 2015는 여전히 경고를 표시했습니다.

  1. Visual Studio에서 솔루션을 닫고 Visual Studio를 종료합니다.
  2. 열기 Git Bash(또는 선호하는 Git UI)
  3. 저장소로 이동 (또는 Git UI로 저장소 열기)
  4. git pull (또는 Git UI에서 pull 수행)
  5. 병합이 발생하고 (제 경우처럼 충돌이 발생하지 않음) vi열림 (또는 기본 병합 해결 도구)
  6. :wq다음을 누릅니다 ENTER에서 vi(또는 침착 핸들 선택적으로 팝업 병합 도구) 그냥 나를 위해 같은 희망이 결의를.
  7. Visual Studio 2015를 시작하고 프로젝트를 엽니 다.

솔루션과 Visual Studio를 닫고 여는 방법을 지시하여보다 안전한 단계를 추가했습니다. 이것은 지나치게 조심스럽고 재 장전으로 충분할 수 있습니다. 이 증상은 Visual Studio Git 통합 부분의 버그 일 수 있으며 향후 해결 될 수 있습니다.


git status해당 디렉토리에서 열린 명령 줄을 입력합니다 . 빨간색 및 / 또는 녹색 텍스트가 있으면 일부 항목을 변경했으며 추가 및 커밋하지 않은 것입니다. 파일을 되돌 리거나 (를 수행하여 git checkout -- <file>) 추가 및 커밋 ( git add --allthen 수행 git commit -m "commit message")합니다. 그런 다음 지점 또는 원하는 다른 작업을 확인할 수 있습니다.


명령 프롬프트에서 프로젝트의 작업 디렉토리로 이동하여 이러한 명령을 시도하십시오.

git add -A
git commit -m "your message"
git fetch origin master
git pull origin master
git push origin master //To push to the Git system

이 문제는 일반적으로 로컬로 커밋되지 않은 파일 / 변경 사항이 있지만 가져 오기 작업에 포함 된 경우 발생합니다.

예를 들어 로컬 Git 리포지토리 폴더에서 직접 (Visual Studio 외부) 새 파일 "test.txt"를 추가합니다. 이 파일은 "추적되지 않은 파일"옵션에 나열 될 수 있으므로 변경 사항을 커밋 할 때이 파일은 추적 및 커밋되지 않습니다. 그런 다음 다른 사람도 동일한 경로로 "test.txt"를 만들고이를 커밋 및 푸시합니다. 이제 풀 작업을 수행 할 때 "test.txt"파일이 풀 작업에 포함되고 커밋되지 않은 변경 사항이 있음을 나타내는 오류 메시지가 표시됩니다. 따라서 커밋되지 않은 파일 / 변경 사항이 있는지 확인하고 가져 오기 전에 커밋해야합니다.


이것은 나에게도 때때로 발생합니다. Visual Studio를 사용하는 경우 방법을 명확하게 할 수있는 쉬운 방법이 있습니다.

Visual Studio 2013 이상의 경우 다음 지침을 따르십시오.

  • 메뉴 도구NuGet 패키지 관리자패키지 관리자 콘솔로 이동 합니다.
  • 타이핑 git reset과 히트Enter

그게 다야. Git이 재설정되고 요청을 쉽게 가져올 수 있습니다.

VS2015 : 도구> Nuget 패키지 관리자> 패키지 관리자 콘솔. 매력처럼 작동했습니다. 감사.


Visual Studio 2017 빌드 15.5에서이 문제가 발생했으며 팀 탐색기 설정전역 설정 으로 이동하여 " 가져 오는 동안 원격 분기 정리 "및 " 끌 때 로컬 분기 리베이스 "를 True로 설정했습니다 .

팀 탐색기 Git 설정

http://www.codewrecks.com/blog/index.php/2017/12/23/configure-visual-studio-2017-15-5-for-pull-rebase/

또한 MS에는 https://docs.microsoft.com/en-us/azure/devops/repos/git/git-config?tabs=visual-studio&view=vsts#prune-remote-branches-during-fetch에 지침이 있습니다. Facepalm 순간은 "이 옵션을 글로벌 수준에서 True로 설정하는 것이 좋습니다."라는 사실을 깨닫는 순간입니다. 해당 항목의 기본 설정이 아닙니다.

Another instance of this issue occurs in the case where you have a separate build server and the solution gets frequent NuGet updates on the compilers. The First person to update NuGet Packages and sync the repo will have no issues, but if someone else attempts the update locally, before performing a sync, this message will pop up and VS won't allow you to pull or push code. To prevent this issue everyone should get into the habit of syncing before doing any updates locally. Once encountered, The best way we have found to resolve it is to stash any uncommitted code you need to keep (https://marketplace.visualstudio.com/items?itemName=vii.GitStashExtension), then reset your repository to the current head.


I had this problem, too. An easy solution was that I selected Commit on the solution to see the uncommitted files (or easily use Team ExplorerChanges).

Then I undo each file using right-click. Before, I tested it by Undo on the whole solution, but it didn't work properly. Then again, I used Team ExplorerSyncPull, and it worked.


This worked for me. I just went to the project directory and checked if something is there

git status

Then I performed a pull by using

git pull

Then I restarted Visual Studio 2015 and pulled the branch that was causing this error. This time with no issue. It seems like it was a bug in Visual Studio 2015.It only occurs when you undo your changes before pulling new changes. This same problem does not seem to be existing in Visual Studio 2017.


For me, the "Update" in the question was the answer. I added a .gitattributes file at the root of my repository and included only the following, so that line endings would only be normalized in cases where the file is text.

*.txt text
*.html text
*.css text
*.js text
# These files are text and should be normalized (Convert crlf => lf)
*.gitattributes text
.gitignore text
*.md texttesting 

Here are the steps that I've followed:

  1. Refer to the path of the uncommitted file in the output window
  2. Navigate to that path and delete that file from the folder
  3. Undo your changes from Team Explorer in Visual Studio to add it again

For me, this issue was caused by having two files, "Web.Config" and "web.config". I guess this is ok in Linux/Unix but Windows can only store one of them locally. I detected this in azure devops exploring the files. I deleted one of them and problem was solved. I guess this problem could be caused by any file.


In Visual Studio open Output Window and switch Show output from to Source Control - git, git will let you know about what stops it from pulling. One of the most common causes can be of course something like this:

The pull would overwrite your local changes to the following 44 files:
    <Here you can probably see a list of 44 files>

It simply means that 44 files have been added to the remote repository which are not part of the local repository. Open Git Bash and run this command:

git add *

This may solve the problem or end up to a an error like this:

$ git add *
The following paths are ignored by one of your .gitignore files:
TestResults
Use -f if you really want to add them.

local재현 에 추가하는 것이 확실한 경우를 사용하여 추가 git add * -f하거나 remote.

도움이 되었기를 바랍니다.

참조 URL : https://stackoverflow.com/questions/36647308/visual-studio-2015-git-error-message-cannot-pull-switch-because-there-are-uncom

반응형