sourcecode

Gitstash 팝업 - 필요 병합, 인덱스를 새로 고칠 수 없습니다.

codebag 2023. 7. 2. 19:27
반응형

Gitstash 팝업 - 필요 병합, 인덱스를 새로 고칠 수 없습니다.

제 재고와 충돌하는 것처럼 보이는 분기를 병합했기 때문에 재고를 터뜨릴 수 없습니다.

app.coffee: needs merge
unable to refresh index

이 문제를 해결하는 방법을 아는 사람?

먼저 확인합니다.git status.
OP가 언급했듯이,

실제 문제는 병합에서 해결되지 않은 병합 충돌이지, 스택이 병합 충돌을 일으키는 것은 아닙니다.

거기서git status그 파일을 "라고 언급할 것입니다.both modified"

해상도:충돌된 파일을 커밋합니다.


솔루션: 이 경우 로컬 파일을 추가하고 커밋하기만 하면 됩니다.

그냥.git add -- yourFile 않는 ) 또는 (변을원지않경는우하경변▁orgit reset -- yourFile(스테이지를 해제하려면) 오류 메시지를 통과하기에 충분합니다.

만약 당신이 커밋하기를 원하지 않는다면, 그냥.git add yourFile충분합니다.
그러면 됩니다.git stash나머지는 당신이 원한다면요.


4일 전 이 답변을 작성할 당시(2012년 3월 13일)에도 '합병되지 않은 파일이 있어 끌어오기가 불가능합니다'라는 글과 비슷한 상황을 확인할 수 있습니다.

julita@yulys:~/GNOME/baobab/help/C$ git stash pop
help/C/scan-remote.page: needs merge
unable to refresh index

병합 충돌(올바른 파일 편집 및 커밋)을 해결했습니다.
"Git에서 병합 충돌을 해결하려면 어떻게 합니까?"를 참조하십시오.

블로그 게시물의 작성자가 한 일은 다음과 같습니다.

julita@yulys:~/GNOME/baobab/help/C$ git reset --hard origin/mallard-documentation
HEAD is now at ff2e1e2 Add more steps for optional information for scanning.

하여 즉, ▁the▁i다니,▁allowing▁complete합▁the허용ing▁merge즉▁currently,을음다를 허용하는 것입니다.git stash pop적용될.
Git에서 병합 중단을 참조하십시오.

그것들이 당신의 두 가지 옵션입니다.

문제를 해결한 방법은 다음과 같습니다.

  • git 상태(이전 stash, pull, stash pop 및 계속 작업의 파일 혼합 참조).
  • gitstash(합병 문제 참조)
  • git add. (내 작업이 로컬에서 병합된 내 자신을 해결하도록 파일을 추가합니다.)
  • git stash(오류 없음)
  • git pull(오류 없음)
  • git stash pop (오류 없음 및 작업 계속)

그것은 받아들여진 대답보다 훨씬 간단합니다.필요한 작업:

  1. 인확을 합니다.git status그리고 그 아래로 합쳐지지 않은 길들.충돌을 해결합니다.나중에 수행하려는 경우 이 단계를 건너뛸 수 있습니다.

  2. 다음을 사용하여 병합되지 않은 경로 아래에 있는 모든 파일을 인덱스에 추가합니다.git add <filename>.

  3. 이, 제!git stash pop충돌이 발생하면 이러한 충돌을 다시 해결해야 합니다.

나는 이 문제를 가지고 있었고, 그리고 나서 갈등을 해결하고 헌신하고 있었고, 그리고는 했습니다.git stash pop하고 있었습니다 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

해야 할: 먼저의 스토리지를 하세요) " 입니다.git stash drop그것을 없애기 위해.

글쎄요, 처음에는 오류의 근원을 알아야 합니다. 그러면 해결책이 쉬워질 것입니다.그 이유는 이미 받아들여진 답변에 의해 지적되었지만, 다소 불완전한(그리고 해결책이기도 합니다.

문제는 하나 이상의 파일에 이전에 충돌이 있었는데 Git에서는 여전히 해결되지 않은 파일로 보고 있다는 것입니다.이미 이러한 파일을 편집하고 충돌을 해결했지만 Git는 이를 알지 못합니다.

이 경우 Git에게 "이봐요, 이전 병합에서 충돌이 없습니다!"라고 알려야 합니다.병합이 반드시 다음과 같은 이유로 발생하는 것은 아닙니다.git merge하지만 또한 a에 의해.git stash pop를 들면 를들면예면.

일적으로.git statusGit가 지금 알고 있는 것을 말해줄 수 있습니다.Git에 대해 해결되지 않은 병합 충돌이 있는 경우 Git는 별도로 표시됩니다.Unmerged paths이 섹션, 파이표로 .both modified(항상?).이 섹션은 두 개의 준비된 섹션과 준비되지 않은 섹션 사이에 있습니다., 병합되지 않은 경로는 Git가 이 두 가지로만 작업할 수 있으므로 단계별 또는 단계별 영역으로 이동해야 하는 경로입니다.

에서도 Git를 할때 지어최버전도의서때에할당, 신이근심때▁even▁a.git status그것당게방알법려니다줍와을에신은▁(와!▁다. (▁yourself! 어떻게 아직 못했는지 어떻게 아직 이것을 보지 못했는지 자문해 보아야 합니다.):

$ git status
...
Unmerged paths:
  (use "git restore --staged <file>..." to unstage)
  (use "git add <file>..." to mark resolution)
        both modified:   path/to/file.txt
...

준비(그리고 커밋):

git add path/to/file.txt

그리고 준비되지 않은 상태로 만드는 방법(예: 지금 커밋하지 않을 경우):

git restore --staged path/to/file.txt

참고: 쓰는 것을 잊었습니다.--staged좋은 텍스트 편집기나 IDE를 사용하지 않을 경우, 옵션은 지난 이틀을 먹기 위해 매우 배고픈 용을 낳을 수 있습니다.

참고: 명령은 아직 실험적이지만 사용할 수 있을 정도로 안정적이어야 합니다(@VonC의 의견 덕분에 자세한 내용은 참조하십시오).

병합/충돌/액션 이외에 이 문제가 있는 사람이 있다면 해당 문제의 원인이 되는 프로젝트의 Git Lock 파일일 수 있습니다.

git reset
     fatal: Unable to create '/PATH_TO_PROJECT/.git/index.lock': File exists.
rm -f /PATH_TO_PROJECT/.git/index.lock
git reset
git stash pop

git reset이러한 변경 사항을 적용하지 않으려는 경우.

저는 제 개발 브랜치에서 약간의 변경을 하고 프로파일 브랜치로 가고 싶어서 같은 문제에 직면했습니다. 그래서 저는 변경 사항을 저장했습니다.

git stash

그러고 나서 프로필 브랜치에서 나는 또한 몇 가지 변경을 하고 나서 개발에 다시 돌아오기를 원하므로 나는 변경 사항을 다시 저장해야 합니다.

 git stash

하지만 제가 지점을 개발하기 위해 와서 창고를 바꾸려고 했을 때

git stash apply

그래서 병합이 필요한 오류가 발생했습니다.

이 문제를 먼저 해결하기 위해 저는 재고 목록을 확인해야 합니다.

git stash list

이 경우 stash@{0},stash@{1}과 같이 stash 이름이 표시되는 stash가 2개 있습니다.

stash@{1}에서 변경 사항이 필요하므로 이 명령으로 변경 사항을 가져오려고 할 때

git stash apply stash@{1}

그래서 오류가 발생했습니다. 병합이 필요합니다.

이제 이 문제를 해결하려면 파일의 상태를 확인하십시오.

git status

그래서 이 런을 해결하기 위해 "둘 다 수정했다"는 오류를 주고 있었습니다.

git add .

이제 누락된 수정 파일을 추가합니다. 상태를 다시 확인하십시오.

git status 

이제 오류가 없습니다. 이제 스택을 적용할 수 있습니다.

git stash apply stash@{1}

이 프로세스는 원하는 수의 저장 파일에 대해 수행할 수 있습니다.

저는 가장 좋은 해결책은 당신의 재고를 분할하고 나중에 해결하는 것이라는 것을 알게 되었습니다.

git stash branch <branch-name>

저장소를 삭제하면 변경 내용이 손실될 수 있으므로 다시 reflog로 이동해야 합니다.

추가해야 합니다.app.coffee무대까지.

git add app.coffee그런 다음 저장소를 적용할 수 있습니다(그 후 커밋 및 푸시).

스택이 이미 다른 파일에 적용되었습니다.

그것은 단지app.coffee수동으로 병합해야 합니다.나중에 그냥 뛰어요.

깃 리셋

변경 사항을 해제하고 계속 해킹합니다.

언급URL : https://stackoverflow.com/questions/9739352/git-stash-pop-needs-merge-unable-to-refresh-index

반응형